2026年10月30日 · 今日 0 帖 · 会员 6.1万 · 主题 17.4万
登录 · 注册 · 游客,欢迎随便逛逛
返回版块
1000
Lv9有为九子能等级图标
勋章勋章勋章勋章勋章
帖子
9.3万
回复
2,089
积分
60.3万
注册
2006-12-06
[安卓交流]

安卓高级教程之获取root原理解析系列四

[复制链接]
查看 463 回复 9
楼主 发表于 | 只看该作者
3 人收藏

上文说过,root的本质就是往 /system/bin/ 下放一个su文件,不检查调用者权限的su文件。普通程序可以调用该su来运行root权限的命令。superuser.apk中就自带了一个这样的su程序。一开始superuser会检测/system/bin/su是否存在:

File su = new File(“/system/bin/su“);

// 检测su文件是否存在,如果不存在则直接返回

if (!su.exists()) {

Toast toast = Toast.makeText(this, “Unable to find /system/bin/su.“, Toast.LENGTH_LONG);

toast.show();

return;

}

//如果大小一样,则认为su文件正确,直接返回了事。

if (su.length() == suStream.available())

{

suStream.close();

return; //

}

// 如果检测到/system/bin/su 文件存在,但是不对头,则把自带的su先写到“/data/data/com.koushikdutta.superuser/su“

//再写到/system/bin/su。

byte[] bytes = new byte[suStream.available()];

DataInputStream dis = new DataInputStream(suStream);

dis.readFully(bytes);

FileOutputStream suOutStream = new FileOutputStream(“/data/data/com.koushikdutta.superuser/su“);

suOutStream.write(bytes);

suOutStream.close();

Process process = Runtime.getRuntime().*(“su“);

登录回复
49233
Lv8能识八方语等级图标等级图标等级图标
勋章勋章勋章勋章
帖子
15
回复
2,080
积分
9.3万
注册
2011-06-07
1 楼

这帖不错,该顶

120420
Lv1韶华一笑间等级图标
帖子
2
回复
190
积分
824
注册
2012-08-22
2 楼

看帖回帖是美德!

73990
Lv1韶华一笑间等级图标
帖子
0
回复
17
积分
100
注册
2011-09-20
4 楼

安卓的世界,我的世界

135825
Lv4莫问四书意等级图标
帖子
1
回复
482
积分
4,779
注册
2013-04-29
7 楼

额呃呃呃

133289
Lv1韶华一笑间等级图标
帖子
0
回复
209
积分
2,342
注册
2013-03-10
8 楼

刚刚好复古代

158634
Lv1韶华一笑间等级图标
帖子
0
回复
8
积分
210
注册
2013-12-25
9 楼

看看

登录后可以回复这个帖子。旧账号可使用原密码登录。

登录 注册新号
← 返回版块