dhcpcd eth0
我写了一个apk来接收BOOT_COMPLETED动作。当收到BOOT_COMPLETED时,它将调用我的共享库(JNI)libmydhcp.so来控制mydhcp。所有进程都运行成功,但dhcpcd启动失败。
在我的apk中,AndroidManifest.xml已经设置了与系统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);
如何修改才能解决这个问题?或者这是不可能的?
答案 0 :(得分:0)
按照上面的评论以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();
}