AndroidRoot设备中的su权限获取和使⽤详解
ROOT权限简介:
ROOT权限是Linux内核中的最⾼权限,如果你的⾝份是ROOT,那么你就具有了ROOT权限。有了最⾼权限,你就可以为所欲为,换句话说,如果恶意程序获取到了ROOT权限,那么就可以肆意地破坏你的⼿机,获取的隐私...所以⼚商⼀般在⽣产⼿机的时候,不会提供给⽤户ROOT权限,官⽅宣称是为了保护⽤户⼿机的安全,然后装了⼀堆开机⾃动启动,⽽⽤户这辈⼦也⽤不到也卸载不了垃圾软件(相信使⽤安卓的同学们都懂我的意思),⽽苹果所说的越狱,也就是获取ROOT权限。
为什么需要获取ROOT权限?
苹果⽤户获取ROOT权限,是为了可以免费安装各种软件,以及为了获取更加灵活的操作体验,苹果不会安装⼀堆恶⼼的软件;⽽安卓普通⽤户获取ROOT权限,最⼤的⽬的就是为了卸载这些恶⼼的⾃带软件,安卓极客⽤户则是为了各种折腾安卓⼿机,安卓开发⼈员是为了得到⽇志⽂件,分析BUG。
我们开机之后,使⽤⼿机的⾝份就是⼀个普通⽤户(user),如果执⾏su,那么就可以直接切换到ROOT⾝份。就像仙剑奇侠传三⾥⾯的景天,是个凡⼈,法⼒有限,但是⼤家都知道,他的前世是飞蓬将军,法⼒⾼强,天界⽆⼈能敌,只有魔界⾄尊重楼可以与他⼀较⾼下,当他们来到天庭的时候,⽟帝施法,让
景天直接切换成飞蓬将军,于是他就有了飞蓬将军的记忆和法⼒,与重楼⼜⼀次⼤战。su就是这样⼀个神奇的命令。
⾼通平台上,su的相关代码位于: LINUX/android/system/extras/su/su.c中
Android开发中,偶有会遇到对⼀些定制设备的开发,⼀般这种设备都会有root权限,开发中也会⽤到root权限去做⼀些操作。⽐如安装操作,普通的Android⼿机安装apk时都会跳出安装的界⾯,但⽤到root权限时,这个可以跳过,操作如下:
Process process = Runtime().exec("su");
茄子煲OutputStream out = OutputStream();
out.write((("pm install -r " + path) + "\n").getBytes());
这⾥⽤到Process去获取su权限,然后执⾏adb的安装指令。要注意的是这些操作需要再try-catch代码块下。
另外之前在⽹上看到过⼀个⽅法去执⾏命令⾏:当当网电子书
public static void execShell(String cmd){
try {
Process Runtime().exec(new String[]{"su","-c",cmd});
BufferedReader br=new BufferedReader(new InputStream()));
String adLine();
加班工资怎么算while(readLine!=null){
辣木籽有什么功效和作用System.out.println(readLine);
adLine();
}
if(br!=null){
br.close();
}
p.destroy();
p=null;
} catch (IOException e) {
// TODO Auto-generated catch block宋茜杨洋
e.printStackTrace();
}
陈奕迅哪首歌最好听}
这⾥通过参数传⼊命令⾏,在⽅法体中执⾏。⾄于具体的命令⾏,则是需要的时候去对应的命令就好了。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论