核心先贴出来,稍后总结
总之就是,不要用
process = Runtime.getRuntime().exec("su"); // 切换到root帐号
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(cmd + "exit\n");
os.flush();
的方式写入后续命令
su 本身就可以执行带命令的参数
su -c ‘sh’
单引号把要执行的命令包起来
同时解决了网上的另一个问题:文件名是中文的话,静默安装就不能实现
下面是个例子:
package com.example.roottest;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import android.util.Log;
public class RootUser {
private static RootUser mInstance = null;
private Boolean hasSu = null;
private static final String SU_BIN = "/system/bin/su";
private static final String SU_XBIN = "/system/xbin/su";
private static final String SH_PATH = "/system/bin/sh";
privat

本文主要探讨了在静默安装Android应用时遇到的su命令无响应问题,指出直接使用su命令并结合参数可以避免卡死。特别地,通过'su -c 'sh''的方式可以正确执行带命令的参数,同时也解决了文件名包含中文导致的静默安装失败问题。

2056

被折叠的 条评论
为什么被折叠?



