RikkaApps/Shizuku-API

对于没有在公共SDK中导出AIDL的类,如何调用比较方便

yqs112358 opened this issue · 6 comments

image

如图,希望调用ActivityManager的getRunningAppProcesses方法,但是ActivityManager的AIDL没有在公共sdk中导出,因此好像不好通过IActivityManager.Stub.asInterface来构造Singleton。这种情况有没有什么比较方便的解决办法?
(倒是好像可以靠写UserService解决,但是那里面在api13以下没有context,又不好拿ActivityManager)

RikkaW commented

在应用进程绕过隐藏 API 的限制后就可以使用 IActivityManager,这基本是用 transactRemote 的唯一路线。

另外,用 UserService 时别想着通过 context 拿什么什么 Manager 了,用 I 什么什么 这些 aidl 的是相对安全的。app_process 出来的进程不是 Android 进程,注册 broadcast receiver、使用 content provider 等等操作都不能进行,而你永远不知道奇奇怪怪的手机机厂商有没有在什么什么 Manager 等等框架类中使用 content provider,然后你一用就炸裂(

悲(
我看绕过限制那个AndroidHiddenApiBypass是lsp模块,这么说纯ADB拿进程信息是不可行了,

RikkaW commented

你好,AndroidHiddenApiBypass 是单纯的给普通应用用的库,和 L 什么 SP 没有关系。

你好,AndroidHiddenApiBypass 是单纯的给普通应用用的库,和 L 什么 SP 没有关系。

没细看看错了。多谢提醒