Android 10 APK安装时赋予默认权限
代码位置:alps\frameworks\base\services\core\java\com\android\server\pm\
代码片段:
```java
void doHandleMessage(Message msg) {
switch (msg.what) {
...
case POST_INSTALL: {
if (DEBUG_INSTALL) Log.v(TAG, "Handling post-install for " + msg.arg1);
PostInstallData data = mRunningInstalls.get(msg.arg1);
final boolean didRestore = (msg.arg2 != 0);
mRunningInstalls.delete(msg.arg1);
if (data != null && data.mPostInstallRunnable != null) {
data.mPostInstallRunnable.run();
} else if (data != null) {
InstallArgs args = data.args;
PackageInstalledInfo parentRes = data.res;
final boolean grantPermissions = (args.installFlags
& PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0;
final boolean killApp = (args.installFlags
& PackageManager.INSTALL_DONT_KILL_APP) == 0;
final boolean virtualPreload = ((args.installFlags
& PackageManager.INSTALL_VIRTUAL_PRELOAD) != 0);
final String[] grantedPermissions = args.installGrantPermissions;
final List<String> whitelistedRestrictedPermissions = ((args.installFlags
& PackageManager.INSTALL_ALL_WHITELIST_RESTRICTED_PERMISSIONS) != 0
&& parentRes.pkg != null)
? parentRes.pkg.requestedPermissions
: args.whitelistedRestrictedPermissions;
final boolean grantPermissions = (
& PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0;
这行代码改为:↓
final boolean grantPermissions = true;
PS: 不是预置的APP安装后默认赋予权限,即install 命令安装后就会赋予。