gam2046
2018-02-15 13:48:22 +08:00
app_process 是以当前用户 fork 出来的,因此权限等同于当前进程。所以不存在你说的情况。这和 linux 的权限机制是一样的。
例如 alipay 通过网络下载回来一个 dex,然后运行,这个 dex 的权限至多与 alipay 一样,不会更多。同样这个 dex 也在 alipay 的虚拟机内,不过其可以申请作为一个独立进程运行,但这与动态加载无关,且作为独立进程运行也是与父进程一样的权限。android 本身就支持这种操作,只需要在 AndroidManifest 中指定 process 参数即可。
同理,如果你在 adb shell 下手动使用 app_process 启动一个 dex,则该程序的权限与你 shell 权限一致(若你 shell 下是 root 权限,则启动的应用也具有 root 权限)。例如黑域,就是利用这种方式,启动一个 shell 权限的 daemon,以获得普通应用程序以外的权限。但这是需要人工干预的,应用程序并不能自己获得额外的权限。
以上是建立在 Android 权限体系的情况,如果有存在系统级的越权漏洞,那么以上都不存在了。如果存在这样的漏洞,说什么也白搭,用户侧根本无能为力,只能坐等 Google 或者 OEM 修复。