如何使用系统权限运行

时间:2015-04-24 07:47:29

标签: android reflection process root hidden

我的应用正在尝试获取隐藏APIs的系统VPN配置文件列表。但是,隐藏的API需要在系统进程中运行。谷歌之后,我找到this,它可以创建一个具有root权限的新进程。

  Process suProcess = Runtime.getRuntime().exec("su");

但它只能在新进程中运行shell命令。如何在新流程中运行自定义功能?

1 个答案:

答案 0 :(得分:1)

使用基础系统的权限运行您的应用程序。您需要使用操作系统的固件证书对应用程序进行签名。如果您要定位某个设备,这只是一个选项。

然后,您可以在AndroidManifest.xml文件中共享系统的uid。

android:sharedUserId="android.uid.system"

由于您拥有平台密钥,您如何签署APK?这是我用来签署APK的.bat文件。您可以在命令中查看必要的文件(signapk.jarplatform.x509.pemplatform.pk8):

@echo off

echo Signing APK "%1" with platform certificate.
java -Xms256m -Xmx512m -jar %~dp0\sign\signapk.jar -w %~dp0\sign\platform.x509.pem  %~dp0\sign\platform.pk8 %1 test.apk
move test.apk %1 >NUL
echo APK is signed.

timeout 2