世界上所谓的root,其实就是用修改过的su,替换系统中受限制的su,达到为所欲为的效果。

这个修改过的su,由ChainsDD大神提供,慷慨地在github中开源了,由于su的权利太大,他同时提供了一个权限管理软件Superuser.apk,通常需要一并装入系统。

如果你有android系统源码,并且想编译一个原生带root的系统,可以按照以下步骤进行。

在源代码的system/extras目录,很容易可以找到su这个文件夹,这就是我们需要替换的地方,上这个网址https://github.com/ChainsDD/su-binary,下载源码替换之,编译后会在system/xbin生成su,但是程序通常会在system/bin查找su,所以我们需要在init.rc做一个链接到system/xbin/su

:::sh
symlink /system/xbin/su /system/bin/su

再把Superuser.apk,放到system/app里面,通常我的做法是在源码device目录的指定型号里面编写mk来达到这个目的。例如:

:::sh
PRODUCT_COPY_FILES += \
	$(LOCAL_PATH)/apk/Superuser.apk:system/app/Superuser.apk

编译并烧写系统,你会发现你的系统已经root了。

如果不太明白什么是root,可以到这个大神的FAQ页面:http://androidsu.com/superuser/faq/