Android开放root权限
生活随笔
收集整理的這篇文章主要介紹了
Android开放root权限
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本文轉(zhuǎn)載自:http://blog.chinaunix.net/uid-12845622-id-3063276.html
Android開放root權(quán)限
開放系統(tǒng)root權(quán)限,即使任何用戶都可以執(zhí)行su程序,以使得臨時用戶也具有了root的權(quán)限,然后去進(jìn)行一些系統(tǒng)級的設(shè)置,如設(shè)置IP地址,DNS等。
/*
myuid?=?getuid();
if?(myuid?!=?AID_ROOT?&&?myuid?!=?AID_SHELL)?{
fprintf(stderr,"su: uid %d not allowed to su\n",?myuid);
return 1;
}
*/ package?com.test;
import?java.io.DataOutputStream;
import?java.io.IOException;
import?android.app.Activity;
import?android.os.Bundle;
import?android.util.Log;
public?class?TestActivity?extends?Activity?{
/** Called when the activity is first created. */
@Override
public?void?onCreate(Bundle savedInstanceState)?{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try?{
Process?process?=?Runtime.getRuntime().exec("su");//(這里執(zhí)行是系統(tǒng)已經(jīng)開放了root權(quán)限,而不是說通過執(zhí)行這句來獲得root權(quán)限)
DataOutputStream?os?=?new?DataOutputStream(process.getOutputStream());
os.writeBytes("ifconfig eth0 192.168.18.122\n");
os.writeBytes("exit\n");
os.flush();
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
}
Android開放root權(quán)限
開放系統(tǒng)root權(quán)限,即使任何用戶都可以執(zhí)行su程序,以使得臨時用戶也具有了root的權(quán)限,然后去進(jìn)行一些系統(tǒng)級的設(shè)置,如設(shè)置IP地址,DNS等。
1、修改su程序?qū)εR時用戶的限制,默認(rèn)su只允許root和shell用戶執(zhí)行
vi system/extras/su/su.c
注釋掉語句塊
就安全性而言這種方式是不太可取的,因此才有了類似于superuser.apk的出現(xiàn),它們的作用就是在外面再提供一層保護(hù)。
2、修改su程序的suid,可以通過ls -l來查看,在system/core/rootdir/init.rc中添加語句
chmod 4755 /system/xbin/su
3、如果涉及到/data目錄而非/data/data/<你的包名>/的修改,則修改system/core/rootdir/init.rc
將 mount yaffs2 mtd@userdata /data nosuid nodev 改為 mount yaffs2 mtd@userdata /data nodev
4、通過java app進(jìn)行驗證
總結(jié)
以上是生活随笔為你收集整理的Android开放root权限的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Stellarium:诱人的星相不雅察软
- 下一篇: Android中的Service使用