Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android Am.jar在根设备上添加权限_Android_Jar_Apk_Android Permissions_Android Framework - Fatal编程技术网

android Am.jar在根设备上添加权限

android Am.jar在根设备上添加权限,android,jar,apk,android-permissions,android-framework,Android,Jar,Apk,Android Permissions,Android Framework,我有一个根设备,我注意到adb中的am命令无法执行其所有任务,因为它没有“签名”权限 你认为这是怎么发生的?。。。。。。。。。我在其他设备上也注意到了这种行为(根设备和非根设备) 在模拟器上,Am.jar似乎具有此权限。 是否有任何方法可以修改Am.jar(或运行它的app\u进程),使其具有与系统相同的签名。 正如我提到的,我的设备也是扎根的 谢谢,正如@Chris提到的,问题不在于签名权限。 在模拟器上运行Am时,它作为系统进程运行。在设备上则不然。 如果我以root用户身份运行此命令,则会

我有一个根设备,我注意到
adb
中的
am
命令无法执行其所有任务,因为它没有“签名”权限

你认为这是怎么发生的?。。。。。。。。。我在其他设备上也注意到了这种行为(根设备和非根设备) 在模拟器上,
Am.jar
似乎具有此权限。 是否有任何方法可以修改Am.jar(或运行它的
app\u进程
),使其具有与系统相同的签名。 正如我提到的,我的设备也是扎根的


谢谢,

正如@Chris提到的,问题不在于签名权限。 在模拟器上运行
Am
时,它作为系统进程运行。在设备上则不然。
如果我以root用户身份运行此命令,则会授予所有权限(甚至是签名)。

首先,您可能没有实际以root用户身份运行
am
。除此之外,android的设计从来就没有“扎根”的想法,正如你所发现的,这远远不是获得android级权限的直接途径。您在emulator上看到的行为差异可能与其他内容有关,例如ro.debugable和/或ro.secure属性。IIRC还有一个属性专门指定了模拟器。谢谢Chris。在本例中,它与它是仿真器这一事实无关(我调试了代码)。我所看到的是由于权限问题而发生的。我想知道是否有任何方法可以为根手机上的应用程序提供“签名”权限我想你可能会错误地忽略了模拟器的独特性,而没有努力找出它的不同行为。基本上,
am
不是应用程序。我正在调试平台本身,以便查看权限检查发生的位置。我猜运行Am.jar的app_进程没有这个权限(或者Am本身没有使用平台密钥签名),您仍然不理解。签名适用于应用程序,但这不是应用程序。当应用程序启动时,zygote会派生一个新实例并对其进行专门化,更改用户ID以限制在unix级别授予的权限,并为IPC级别的权限留下身份和标识-从未调用过exec()家族函数。但是,当shell分叉并调用exec()来加载
am
程序时,您就有了一个干净得多的记录。unix权限是运行用户(root或shell)的权限,但本质上IPC系统不支持在该级别强制执行的操作。它不作为系统进程运行,但emulator首先为您提供一个root shell。