博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于android8.1实现多个app升级时的注意事项
阅读量:6804 次
发布时间:2019-06-26

本文共 1647 字,大约阅读时间需要 5 分钟。

关于android8.1实现多个app升级时的注意事项

android新的版本,packagemanager对app安装有一定的限制,就是除了shell和root用户外,其他用户的进程不允许安装除了系统用户(system ui)以外的app。也就是例如system用户不允许安装uid为7000的app。

所以,如果你想通过一个appupgrade(一个system用户的进程)专门去进行多个不用用户的应用进行差分升级,那么需要去掉此限制。

修改如下:

diff --git a/frameworks/base/services/core/java/com/android/server/pm/PackageInstallerService.java b/frameworks/base/services/core/java/com/android/server/pm/PackageInstallerService.java

index 94f7577..53eea02 100644
--- a/frameworks/base/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/frameworks/base/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -438,7 +438,7 @@ public class PackageInstallerService extends IPackageInstaller.Stub {
throw new SecurityException("User restriction prevents installing");
}

  • if ((callingUid == Process.SHELL_UID) || (callingUid == Process.ROOT_UID)) {
  • if ((callingUid == Process.SHELL_UID) || (callingUid == Process.ROOT_UID) || (callingUid == Process.SYSTEM_UID)) {

    params.installFlags |= PackageManager.INSTALL_FROM_ADB;

    } else {

    @@ -737,7 +737,7 @@ public class PackageInstallerService extends IPackageInstaller.Stub {

    IntentSender statusReceiver, int userId) throws RemoteException {
    final int callingUid = Binder.getCallingUid();
    mPm.enforceCrossUserPermission(callingUid, userId, true, true, "uninstall");

  • if ((callingUid != Process.SHELL_UID) && (callingUid != Process.ROOT_UID)) {
  • if ((callingUid != Process.SHELL_UID) && (callingUid != Process.ROOT_UID) && (callingUid != Process.SYSTEM_UID)) {
    mAppOps.checkPackage(callingUid, callerPackageName);
    }

欢迎观看我发布的各个课程:

或者
我的3折优惠的专题组合课程:

转载于:https://blog.51cto.com/8906847/2397612

你可能感兴趣的文章
Python 调用cobbler API 学习笔记
查看>>
php安装常见错误解决
查看>>
eNsp下载地址(官网)
查看>>
raspberrypi的相关网址
查看>>
DirectX 最终用户运行时 Web 安装程序
查看>>
varnish
查看>>
linux学习-centos7上部署DNS服务
查看>>
在Silverlight中动态绑定页面报表(PageReport)的数据源
查看>>
决心书
查看>>
我的友情链接
查看>>
asci和ascii中文编码问题
查看>>
linux笔记 2-11 系统恢复
查看>>
windows下kafka+ELK的日志系统
查看>>
未来时代
查看>>
正则表达式总结
查看>>
ImageView的属性android:scaleType,即ImageView.setSca...
查看>>
java 计算指数函数log2(X)的值
查看>>
Greenplum -- 最全分区表操作
查看>>
Linux交互命令工具expect与自动切换登录用户
查看>>
热烈祝贺广州固润光电参加2017深圳光博会取得圆满成功
查看>>