我开发了一个应用程序,其中我执行需要root访问的命令。
我还使用java Process来执行命令,但它也无法正常工作。
为此我使用c api使用JNI(NDK),但它也没有root用户访问权限。因为它具有与应用程序相同的权限。
我的设备作为root访问权限,这就是它在adb shell中执行命令的原因。但不是 来自申请。
有没有办法给应用程序提供root权限?
请给出解决方案......
答案 0 :(得分:1)
为了给予应用程序系统许可。
您需要使用平台签名签署应用程序。您需要使用<root-of-android-source-tree>/build/target/product/security/
中的密钥并在AndroidManifest.xml文件中添加android:sharedUserId="android.uid.system"
。
步骤:
使用平台证书签署申请 并使用系统sharedUserId运行它。这些是步骤:
- 使用http://source.android.com/documentation/building-for-dream为您的梦想构建并闪现自己的Android。使用 mkkey.sh脚本 要创建http://pdk.android.com/online-pdk/guide/release_keys.html 新证书,包括x509证书,然后才能制作&#39;。
- 在您的应用的
AndroidManifest.xml
中:在<manifest>
元素下添加属性android:sharedUserId="android.uid.system"
。- 使用Eclipse导出未签名的Android应用程序版本:右键单击项目&gt;&gt; Android工具&gt;&gt;出口 未签名的应用程序包。
使用
<root-of-android-source-tree>/out/host/<your-host>/framework/signapk.jar
使用platform.x509.pem
和platform.pk8
<root-of-android-source-tree>/build/target/product/security
对您的应用进行签名 早先生成的:java -jar signapk.jar platform.x509.pem platform.pk8 YourApp-unsigned.apk YourApp-signed.apk.
将应用安装到您的设备:
adb install YourApp-signed.apk
- 运行您的应用
- 使用
adb shell ps
确认您的应用是否以系统身份运行。
答案 1 :(得分:0)
在谈论root访问权限时,您必须在清单文件link中提供权限,然后在root用户手机中安装应用程序之后su应用程序将要求root权限