说明
由于自己一直以来对手机管理方面的东西比较感兴趣,加上最近以来老大的驱动,所以决定研究整理一下root相关技术(不局限于root)。手机Root是一门大学问,root的招数各有不同。Root权限的利用同样也是一门学问。接下来将学习研究一下Android中root相关技术。如何取得root权限不是我的特长,所以接下来的整理中,将重点研究整理在获取root权限以后,可以做那些事情,已达到通过root权限优化用户体验的目的。
- n 由于涉及到的内容较多,需要投入大量的精力和时间。在整理时会优先整理跟平时工作中联系相对紧密的,然后再整理其他的。
- n 本系列的所有文章均是基于应用开发的角度进行分析,很多功能在系统(ROM)层次可能有更好的实现方式,这里暂时不做介绍。
- n 本系列涉及到的大部分Android系统源码是基于Android4.4的。
- n 本系列整理的内容都是手机管理类应用(电子市场、手机助手、手机管家等)的一些通用功能,因此在整理时统称“手机管理类软件”,并不特别突出“应用宝”字样。
- n 文章的整理尽量抱着章节清除的原则,采用博客体语音进行整理,方便大家阅读和交流。
- n 发现身边的很多朋友在研究手机管理类软件的功能特性的时候,喜欢上来就拿竞品应用来发编译分析。我承认反编译分析竞品是一种快速有效的学习方式,且不说现在随着混淆和各种应用加固手段的推出,反编译的成本原来越高,个人认为这并不是一种良好的学习方式,在学习时我们还是应该从根本的原理上去分析问题。所以,虽然自身水平和知识有限,本系列文章中我还是希望能够从系统和源码的角度跟大家一起去学习。
Root的原理
Root本身是指Linux系统的root帐户,该帐户拥有整个系统至高无上的权利,系统中的所有对象它都可以操作,对于Android手机用户来说的Root是指拥有Root权限,一般情况下,手机厂商出于安全考虑会关闭手机的Root权限,手机系统是运行在普通用户权限下的,用户是无法操作系统中的文件与数据的。因此,目前获取root的方法都是利用系统漏洞实现的。而不同手机厂商可能存在的漏洞不同,也就导致了不同手机root的原理可能不同。不过,不管采用什么原理实现root,最终都需要将su可执行文件复制到Android系统的/system分区下(例如:/system/xbin/su
)
并用chmod命令为其设置可执行权限和setuid权限。为了让用户可以控制root权限的使用,防止其被未经授权的应用所调用,通常还有一个Android应用程序来管理su程序的行为。root的基本原理就是利用系统漏洞,将su和对应的Android管理应用复制到/system分区。
目前最广泛利用的系统漏洞是zergRush,该漏洞适用于Android2.2-2.3.6的系统,其它的漏洞还有Gingerbreak, psneuter等等。
获取Root的漏洞
Root的获取不同手机利用的漏洞不同。这里搜集了几个常见的用于获取root权限的漏洞。
http://blog.csdn.net/hikame/article/details/8713297
http://www.kanxue.com/bbs/showthread.php?t=175129
http://blog.csdn.net/androidsecurity/article/details/13293789
http://security.tencent.com/index.php/blog/msg/26
Root后的应用
1、 安装/卸载:
A、 静默安装/卸载
B、 秒装/秒卸载
C、 卸载应用保存数据
D、 系统内置应用卸载
E、 卸载后清除残留数据
F、 批量静默安装/卸载
2、 数据备份:
A、 应用安装包的备份
B、 应用数据的备份
C、 系统数据备份
3、 垃圾清理,包括:
A、 内存加速:清理正在运行的进程
B、 限制后台启动
C、 应用卸载后清理残留数据
D、 应用缓存(data目录下的)
E、 一键加速
4、 控制通知栏:
A、 对第三方应用的通知进行拦截和清理
B、 主要实现原理为:进程注入
5、 开机自启动:
A、 通过设置优先级和接收开机广播启动Service,监控到其他开机启动服务则干掉
B、 进程注入。
6、 屏蔽广告:
A、 host黑名单方式(Adblock Plus为代表)
B、 进程注入方式(手机金山毒霸为代表)
7、 省电控制:
A、 控制CPU频率
B、 后台唤醒控制
C、 锁屏时杀掉后台常驻Service等。
8、 联网控制:
A、 原理:iptable
B、 控制应用在WiFi和移动互联网时的网络访问情况
9、 系统伪装:
A、 伪装手机型号
B、 伪装地理位置
C、 伪装运营商
10、 应用权限控制
A、 禁用应用的某些权限
B、 监控第三方应用权限
11、 获取和修改系统信息
A、 获取系统配置信息
B、 获取dump等log信息
C、 修改手机开关机动画
D、 修改手机开关机铃声
E、 修改手机字体