Android 10 APK安装时赋予默认权限

时间:2025-02-08 16:15:26

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 命令安装后就会赋予。