我写了一个android程序mydhcp来发送运行dhcpcd(android默认dhcp程序)的命令:
dhcpcd eth0并且我编写了一个apk来接收BOOT_COMPLETED操作。当收到BOOT_COMPLETED时,它将调用我的共享库(JNI) libmydhcp.so来控制mydhcp。所有进程都运行成功,但dhcpcd启动失败。
在我的apk的AndroidManifest.xml中已经设置了与system uid相同的uid:
android:sharedUserId="android.uid.system"和其他用途-权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>崩溃点位于main(),它位于外部/dhcpcd/dhcpcd.c
pidfd = open(pidfile, O_WRONLY | O_CREAT | O_NONBLOCK, 0664);如何修改才能解决这个问题?或者这是不可能的?
发布于 2012-08-01 00:55:05
要以root用户身份运行命令,请按照上面的注释执行以下操作:
public void RunAsRoot(String[] cmds){
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
for (String tmpCmd : cmds) {
os.writeBytes(tmpCmd+"\n");
}
os.writeBytes("exit\n");
os.flush();
}https://stackoverflow.com/questions/11732898
复制相似问题