隔壁哒泰山 发表于 2022-9-5 00:32

我该怎样通过shizuku尝试反射调用android.os.IDeviceIdleController

我是kotlin和反射初学者,我现在想借用shizuku的身份反射状态栏管理器移除一些状态栏图标,我的思路是先通过aidl创建一个名为iuserservice的aidl文件创建一个可返回ibinder类型的dosomething接口,然后创建一个userservice类继承这个iuserservice的接口并且重写那个dosomething方法,内容是反射servicemangaer的getservice方法获取指定的服务管理器的ibinder (代{过}{滤}理驱动对象)此时是以shell或root的身份进行的操作,然后返回这个服务管理器的代{过}{滤}理驱动对象,当使用shizuku.binduserservice()方法成功绑定userservice类时,就拿到了指定的服务管理器的代{过}{滤}理驱动对象,现在我只要在/system/framework/framework.jar 找到系统中对应的接口,放在aidl里面构建一下就可以拿到这个服务管理器对应的接口方法,那么现在我只需要将这个服务管理器的代{过}{滤}理驱动Ibinder强制转换成接口就可以调用这个接口的所有方法了。不知道这么想有什么什么问题,因为是kotlin,我按照这个思路去调用状态栏管理器的removeicon方法时还是说我权限不足,按理说我的uid应该是0或者1000才对,结果并没有按照我想的发生,这是为什么呢?😭😭😭😭😭

Null666yyds 发表于 2022-9-5 11:55

这或许就是安卓系统的一些限制吧
页: [1]
查看完整版本: 我该怎样通过shizuku尝试反射调用android.os.IDeviceIdleController