一、AOSP-应用获取root权限+System用户提示

AOSP-应用获取root权限+System用户提示

一、应用获取root权限

  • 源码路径:framework/base/core/java/com/android/internal/os/ZygoteConnection.java

  • 修改思路

    根据app的包名来判断,授予不同的权限等级
    权限等级说明,下面0与1000代表Linux下不同用户组的权限
    root权限:对应0
    system权限:对应1000

注意:修改为root或system权限会导致无法使用SharedPreferences

  • 源码
if (!args.gidSpecified) {
    args.gid = peer.getGid();
    args.gidSpecified = true;
}
  • 为不同app设置不同的权限
    if (!args.gidSpecified) {
        args.gid = peer.getGid();
        args.gidSpecified = true;
    }
	//zjp add
	if((args.niceName!=null) && (args.niceName.contains(".test.")) ){
           args.uid=1000;
           args.gid=1000;
        }
	if((args.niceName!=null) && (args.niceName.contains(".test.app"))){
           args.uid=0;
           args.gid=0;
        }

二、System用户提示

上面的用户组如果设置到1000
app在运行的时候会提示“W/ContextImpl: Calling a method in the system process without a qualified user: …”
下面介绍如何屏蔽该提示

  • 源码路径: /frameworks/base/core/java/android/app/ContextImpl.java
  • 源码
private void warnIfCallingFromSystemProcess() {
    if (Process.myUid() == Process.SYSTEM_UID {
        Slog.w(TAG, "Calling a method in the system process without a qualified user: "
                + Debug.getCallers(5));
    }
}
  • 修改
private void warnIfCallingFromSystemProcess() {
    //zjp update
    if (Process.myUid() == Process.SYSTEM_UID && !Debug.getCallers(5).contains("com.test.") {
        Slog.w(TAG, "Calling a method in the system process without a qualified user: "
                + Debug.getCallers(5));
    }
}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Android AOSP (Android Open Source Project) 是由谷歌开发的开源操作系统,它提供了 Android 系统的所有底层源代码,开发者可以在 AOSP 的基础上开发自己的安卓版本或添加新的功能。 在 AOSP 中,应用程序的权限是通过 Android 权限模型来管理的。这个模型包含了一系列的权限声明,每个声明都对应着一个权限常量。开发者在编写应用程序时,可以在应用的清单文件中声明所需的权限,当用户安装应用时,系统会提示用户是否授予这些权限。 如果用户同意授予权限应用程序就可以使用相应的权限,否则就不能使用。开发者可以通过调用 Android 系统的 API 来检查应用是否已获得特定的权限,并在必要时请求权限。 总的来说,AOSP 中的权限管理机制旨在保护用户的隐私和安全,同时也为开发者提供了更多的灵活性和控制能力。 ### 回答2: 安卓 AOSP(Android Open Source Project)是一个用于开源安卓系统的代码库。在安卓系统中,权限管理是一个重要的部分,用于控制应用程序对设备资源和用户敏感信息的访问。 AOSP 使用一种基于权限的安全模型,它将设备的功能和用户隐私划分为不同的权限级别。这些权限包括访问摄像头、读取联系人、发送短信等。每个应用程序在安装时都会请求访问特定的权限,并需要用户同意才能获得该权限。 在安卓 AOSP 中,权限的处理涉及两个方面:应用开发和系统管理。 在应用开发方面,开发者需要在应用的清单文件中声明需要的权限。这样做的目的是让用户在安装应用之前就知道该应用所需的权限,从而更好地保护用户的隐私。开发者还可以通过代码检查和权限请求来确保应用在使用敏感权限时遵循最佳实践。 在系统管理方面,AOSP 提供了一个权限管理系统来管理所有安装应用权限用户可以在系统设置中查看和控制每个应用权限。系统还提供了运行时权限授予和撤销的功能,以便用户可以在应用运行时决定是否给予应用访问敏感权限权限。 总的来说,安卓 AOSP 处理权限通过权限声明、用户同意和系统管理来确保应用对敏感资源和用户隐私的安全访问。这种机制旨在保护用户的隐私,并提供透明的权限管理方式,使用户可以更好地控制应用对设备的访问权限

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无休止符

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值