首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >APK能通过JNI发送命令运行dhcpcd吗?

APK能通过JNI发送命令运行dhcpcd吗?
EN

Stack Overflow用户
提问于 2012-07-31 12:01:07
回答 1查看 421关注 0票数 0

我写了一个android程序mydhcp来发送运行dhcpcd(android默认dhcp程序)的命令:

代码语言:javascript
复制
dhcpcd eth0

并且我编写了一个apk来接收BOOT_COMPLETED操作。当收到BOOT_COMPLETED时,它将调用我的共享库(JNI) libmydhcp.so来控制mydhcp。所有进程都运行成功,但dhcpcd启动失败。

在我的apk的AndroidManifest.xml中已经设置了与system uid相同的uid:

代码语言:javascript
复制
android:sharedUserId="android.uid.system"

和其他用途-权限:

代码语言:javascript
复制
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>

崩溃点位于main(),它位于外部/dhcpcd/dhcpcd.c

代码语言:javascript
复制
pidfd = open(pidfile, O_WRONLY | O_CREAT | O_NONBLOCK, 0664);

如何修改才能解决这个问题?或者这是不可能的?

EN

回答 1

Stack Overflow用户

发布于 2012-08-01 00:55:05

要以root用户身份运行命令,请按照上面的注释执行以下操作:

代码语言:javascript
复制
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();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11732898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档