Android Java su命令权限被拒绝
我在尝试使用adb install命令以静默方式安装/更新APK时遇到一些问题。我指的是 这是我的密码:Android Java su命令权限被拒绝,java,android,emulation,su,Java,Android,Emulation,Su,我在尝试使用adb install命令以静默方式安装/更新APK时遇到一些问题。我指的是 这是我的密码: public boolean installApk(Activity mActivity){ boolean success = false; String fullPath = scanDirectoryForApk(); try { String command; command = "adb install -r " + full
public boolean installApk(Activity mActivity){
boolean success = false;
String fullPath = scanDirectoryForApk();
try {
String command;
command = "adb install -r " + fullPath;
Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", command });
proc.waitFor();
success = true;
} catch (Exception e) {
e.printStackTrace();
}
}
在我的AndroidManifest.xml中:
<uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
<uses-permission android:name="android.permission.REBOOT" />
我正在使用Android Emulator运行应用程序。当我运行emulator时,我已经设置了命令使其成为根目录
有什么想法吗?谢谢
su
命令需要根设备run@RutvikBhatt但是,我确实使用类似于adb设备、adb rootinstall root checker app(从play store安装)的命令将我的仿真器设置为根目录,并检查你的仿真器是否真的根目录,它显示它是根目录。您有什么想法吗?您是否根据此在您的AndroidManifest.xml中添加权限?
java.io.IOException: Cannot run program "su": error=13, Permission denied
06-08 03:46:37.612 5438-5905/com.mainapp W/System.err: at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:692)
at java.lang.Runtime.exec(Runtime.java:560)
at com.thermofisher.viewmodel.vuViewModel.installApk(vuViewModel.java:281)
at com.mainapp.asynctask.evuTask.doInBackground(evuTask.java:67)
06-08 03:46:37.614 5438-5905/com.mainapp W/System.err: at com.mainapp.asynctask.evuTask.doInBackground(evuTask.java:17)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
06-08 03:46:37.615 5438-5905/com.mainapp W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)