Android 9.0 10.0 手动安装Persistent app失败的解决方案

1.概述

在Android系统App中(注意是系统App),都会添加一个persistent 属性,表明此应用是一个永久性应用,就是从系统一开机就一直运行,直到系统关机
在10.0定制化开发中,手动安装一些带persistent的app时会抛出异常 导致安装失败 抛出异常is a persistent app. Persistent apps are not updateable的异常
所以这要从安装流程分析问题所在
主要安装处理在:PackageManagerService.java中

2.手动安装Persistent app失败的核心功能分析和解决方法

2.1PackageManagerService.java相关方法分析

路径:frameworks\base\services\core\java\com\android\server\pm\PackageManagerService.java

@GuardedBy("mInstallLock")
    private PrepareResult preparePackageLI(InstallArgs args, PackageInstalledInfo res)
            throws PrepareFailure {
        final int installFlags = args.installFlags;
        final String installerPackageName = args.installerPackageName;
        final String volumeUuid = args.volumeUuid;
        final File tmpPackageFile = new File(args.getCodePath());
        final boolean onExternal = args.volumeUuid

猜你喜欢

转载自blog.csdn.net/baidu_41666295/article/details/126474487