您的位置:首页 > 移动开发 > Android开发

Compile Android 5.1.1 ROM with ROOT by SuperSU

2017-03-05 17:17 489 查看

0x00 前置信息

Android 5.1.1

SuperSU v2.65

目标:基于
SuperSU
编译一个可以在应用层使用
root shell
Android 5.1.1 ROM


0x01 添加su模块

编译Android时,
userdebug
或者
eng
方式编译默认自带的
su
,不使用这个自带的
su
,即不编译这个自带
system\extras\su
模块,最简单的方法是把该目录下的
Android.mk
重命名或者删掉。

packages
目录下新建
su
目录,并拷贝SuperSU中的
su
文件(与系统自带的su不一样)至该目录下,并在该目录下新建
Android.mk
文件,文件内容如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := su
LOCAL_SRC_FILES := $(LOCAL_MODULE)
LOCAL_MODULE_CLASS := EXECUTABLES

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
LOCAL_UNSTRIPPED_PATH := $(LOCAL_MODULE_PATH)
include $(BUILD_PREBUILT)


在配置文件中加入该模块 \

修改
device/$(brand_name)/device.mk
文件,添加
PRODUCT_PACKAGES += su


修改
su
文件权限 \

文件权限定义在
system/core/include/private/android_filesystem_config.h
文件中,

找到如下内容,根据需求修改。

{ 06755, AID_ROOT,      AID_ROOT,     0, "system/xbin/su" },


至此,就可以把su模块添加到ROM中。

0x02 设置su为启动服务

修改init.rc文件,设置su为自启动服务

on boot
start su_daemon

service su_daemon /system/xbin/su --auto-daemon
class main
disabled
user root


0x03 添加selinux权限规则

device/$(brand_name)/sepolicy/init.te


添加如下内容

allow init su_exec:file { execute_no_trans setattr relabelfrom relabelto };
allow init system_file:file { relabelto };
allow init rootfs:file { create write relabelfrom relabelto setattr };
allow untrusted_app init:unit_stream_socket { connectto };


如果有编译错误,根据错误提示去相关文件中修改权限限制。

external/sepolicy/untrusted_app.te


line 96

# neverallow untrusted_app ...;


external/sepolicy/domain.te
\

Delete some allow limit from init in line 294 and line 297.

至此,成功。

0x04 SuperSU原理

在Android 4.3及其以后的版本中,所有应用进程都从zygote进程中分支出来,并被踢出了所有的权能,以防止应用程序执行一些高权限的操作。在Android 4.4及其后面的版本中,SELinux处于enforcing模式,所有应用启动的任何进程都包含其本来的安全标签(一般是untrusted_app),因此应用进程还必须遵循强制访问控制(MAC)的限制,所以必须使用守护进程,才有可能让应用执行root权限操作。

APP使用su执行root权限命令,这些命令实际是通过UNIX的域套接字传送给su_daemon守护进程来执行的。su_daemon service由init进程启动,所以会以
u:r:init:s0
的SELinux标签来执行收到的命令。[1]

[1] Android安全架构深究 P368
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android rom
相关文章推荐