SELinux和chroot系统调用
TL; DR:这是一个关于可移植,面向开发人员的生根过程的最终步骤的问题,该步骤适用于所有Android机器。它不基于任何漏洞利用-作为开发人员,我们在法律上和道德上都可以对自己的机器进行操作。如果我得到了答案并设法在Debian中使用chroot,我将撰写一篇简洁的博客文章,详细介绍此过程的所有步骤,供所有希望root访问其平板电脑的开发人员-不想信任可疑起源的人“一键式root”对他们的机器(僵尸网络成员?)知道什么......唯一的依赖关系是机器的内核源(制造商有义务提供)和引导分区映像(boot.img),这是制造商提供的空中下载更新中的99%的时间,也可以作为独立的可闪存映像单独下载。 因此,一周过去了,我将所有空闲时间都花在了新的Android平板电脑上。 我几乎完全成功-创建了一个可移植的,面向开发人员的流程,以实现在Android 5.0.2平板电脑中的扎根。 但是还缺少一件事-我无法执行chroot(我需要运行debootstrap-ed Debian!) 我到目前为止所做的 首先,我在平板电脑(制造商提供)的内核源代码中做了一个小补丁,然后编译了自己的内核-在这里我禁用了更改SELINUX强制模式的检查。特别... 在security/selinux/selinuxfs.c: ... if (new_value != selinux_enforcing) { /* Commented out by ttsiodras. length = task_has_security(current, SECURITY__SETENFORCE); if (length) goto out; */ audit_log(current->audit_context, GFP_KERNEL, AUDIT_MAC_STATUS, "enforcing=%d old_enforcing=%d auid=%u ses=%u", new_value, selinux_enforcing, 然后,我将initrd图片更改/default.prop为包含:ro.secure=0和ro.debuggable=1 由于制造商initrd.img缺少该文件,因此我还su.c从https://android.googlesource.com/platform/system/extras/+/master/su/进行了编译,并将生成的二进制文件放在下/sbin/su,确保将其设置为SUID root(chmod 04755 /sbin/su) 。 之后,我打包了新的内核和新的initrd,正如我在前一篇文章的第2集中解释的那样-并从我自己的映像启动: adb reboot boot-loader ; …