说法一:
如果程序里面有SystemInfo.graphicsDeviceVersion或SystemInfo.deviceUniqueIdentifier代码的时候,unity就会添加这个权限。
如:NGUI中会使用到。
说法二:
代码里 或者关联包 没有在AndroidStudio设置minSDK 设置大于14
如:\build\outputs\logs\manifest-merger-debug-report.txt 可以看到是那个library添加了哪个权限,找到根源
说法三:
如果你使用了obb分包的话,Unity也会自动添加一些额外的权限
uses-permission:'android.permission.INTERNET'
uses-permission:'android.permission.ACCESS_NETWORK_STATE'
uses-permission:'android.permission.ACCESS_WIFI_STATE'
uses-permission:'com.android.vending.CHECK_LICENSE'
uses-permission:'android.permission.WRITE_EXTERNAL_STORAGE'
说法四:
删除Facebook SDK并安装版本< = 7.80。无论出于何种原因,7.9+的sdk会使Unity自动包括READ_PHONE_STATE权 限,该权限在Google play中触发设备ID &呼叫信息权限警告。
本人遇到的unity打包apk自动添加 READ_PHONE_STATE危险权限的原因是:
unity插件 Fabric 崩溃统计的manifest.xml里没有添加如下代码:
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="26"/>
加上即可。
若还有问题需挨个排查。
有发现新的诱因,欢迎留言补充!