AI手机网,短视频直播 硬改改机 一键新机 群控软件 刷机定制

 找回密码
 立即注册
搜索
查看: 2437|回复: 0

Android 包管理服务(PackageManagerService)

[复制链接]
发表于 2019-1-5 20:02:33 | 显示全部楼层 |阅读模式
PMS服务层
和AMS, WMS等其他服务一样,包管理服务运行于SystemServer进程(SystemServer组件是由Zygote进程负责启动的,启动的时候就会调用它的main函数)
/system/etc/permissions 和 /data/system/package.xml
查看 /prc/../maps ,确实加载了很多 dex
/system/framework/oat/arm64/services.odex
/system/framework/arm64/boot-framework.vdex
下面给出的是一段Frida HooK代码, 在Oneplus 5T和Lenovo Z5上调试通过
  1. setImmediate(function() {
  2. Java.perform(function(){
  3.     console.log("start hook....");
  4.     var PMS = Java.use("com.android.server.pm.PackageManagerService");
  5.     console.log("PMS Found.");
  6.     PMS.checkUidPermission.implementation = function (permName, uid) {
  7.         if("com.qualcomm.permission.UIM_REMOTE_CLIENT" == permName) {
  8.             console.log("permName: "  + permName + " :" + uid);        
  9.             return 0; //PERMISSION_GRANTED
  10.         }

  11.         return this.checkUidPermission(permName, uid);
  12.     };

  13.     console.log("hook ok.");

  14. });
  15. });
复制代码
功能就是, 对 com.qualcomm.permission.UIM_REMOTE_CLIENT 放权
Xposed写法
  1. private void hookPackageManagerService(XC_LoadPackage.LoadPackageParam lpparam) {
  2.         if (!lpparam.packageName.equals("android")) {
  3.             return;
  4.         }

  5.         try {
  6.             XposedHelpers.findAndHookMethod("com.android.server.pm.PackageManagerService",
  7.                     lpparam.classLoader, "checkUidPermission", String.class,  int.class,

  8.                 new XC_MethodHook() {
  9.                     @Override
  10.                     protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {
  11.                         String permName = (String) param.args[0];
  12.                         if (permName.equals("com.qualcomm.permission.UIM_REMOTE_CLIENT")) {
  13.                             param.setResult(0);
  14.                         }
  15.                     }
  16.                 }

  17.             );
  18.         } catch (Exception e) {
  19.             XposedBridge.log(e);
  20.         }

  21.     }
复制代码
注意:包名是  android 而是 源代码中的  com.android.server.pm
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

技术交流售后群

QQ|小黑屋|手机版|站点找错-建议|AI手机网 |Sitemap



GMT+8, 2024-4-19 07:09 , Processed in 0.132016 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表