现在google是越来越不给我们留活路了… 从android 6.0开始, 三星的5.1.1开始. 默认都开启了data分区的forceencryption, 也就是强制加密. 也开启了/system分区验证. 所以目前市面上都没有针对android 6.0和三星5.1.1以上的root方案..

国外的supersu的作者chainfire, 搞cf-auto-root那哥们, 也没有针对三星5.1.1和android 6.0的方案. 不过他私下搞了个修改android内核的root方案.. 这个可能是目前唯一可以root 6.0的办法.

http://forum.xda-developers.com/apps/supersu/wip-android-6-0-marshmellow-t3219344

这个可能也是以后root的办法.. 它是通过修改boot.img也就是Android的内核文件, 对/system分区效验的地方打补丁. 目前我们搞刷机也是用的这个办法. 这个办法有一个弊端, 就是需要修改Android的内核文件. 要针对一台一台机型的做处理. 即使是一键Root也必须这样.

以后Root会越来越难! 即使是有漏洞, 能够提权, 但是不允许修改/system目录的话, 也要针对每一款机型自己做一个打过补丁的sepolicy文件!想来感觉真是有点心寒, google这是要赶尽杀绝的节奏啊!目前只能使用chainfire研究出来的给sepolicy打补丁的办法. 不过他说在弄, 不需要打补丁的办法. 但是还没试验, 另外他说Bugs… Bugs everywhere!

http://www.androidpolice.com/2015/10/31/chainfire-experiment-achieves-android-root-without-touching-the-system-partition/

所以目前可行的办法还是修改boot.img.. 昨天在三星的S5(SM-G900I)上, 成功做出来了一个刷机包可以获取到root权限. 这种办法, 针对android 6.0和三星的5.1.1以上都可以.. 当然如果是锁了bootloader的机器, 那就没办法了! 这里简单说下步骤.

1. 首先根据机型的型号(SM-G900I)和Model number去下载原版的刷机包. 下载包的时候注意基带版本和Build number.

http://samsung-updates.com/

2. 下载一个该机型的(SM-G900I)的自定义recovery. 一般CWM 和TWRP都可以. 只需要有完整的busybox工具就行!

https://www.clockworkmod.com/rommanager

http://teamw.in/Devices/

3. 下载SuperSU-v2.56-20151030013730 底包

SuperSU-v2.56-20151030013730.zip

4. 脚本文件提取. 这个我们就直接从xiao1u修改的S6(SM-G9200)的boot.img里面提取就行. 需要这个包里面的3个脚本文件. startsu.sh init.fixdeepsleep.sh  install-su.sh

http://pan.baidu.com/s/1bnE2nJT 密码: yb1y

这样. 需要的基本资源就可以了.. 下面就是做自己的包了. 所以接下来这几步这样弄.

1. 获取patch过的sepolicy. 这步很关键, 不然即使脚本和SuperSU放进去了, 也启动不了机器. 因为seplicy检测到/system被修改了, 会拒绝启动. 所以刷入自定义的recovery然后进入recovery中执行以下命令.

adb push sepolicy /data/local/tmp/sepolicy
adb shell su -c "supolicy --file /data/local/tmp/sepolicy /data/local/tmp/sepolicy_out"
adb shell su -c "chmod 0644 /data/local/tmp/sepolicy_out"
adb pull /data/local/tmp/sepolicy_out sepolicy_out

  

sepolicy在下载的原版刷机包里面有, supolicy在SuperSU-v2.56-20151030013730里面. 运行supolicy的时候, 提示缺少库文件libsupol.so所以把libsupol.so上传到/system/lib下面. 上面的命令就可以执行完成了. 输出的sepolicy_out就是patch过的文件. 用这个替换掉boot.img里面的sepolicy就可以关闭检测了.

1) 修改/default.prop

修改内容:

ro.secure=1
ro.allow.mock.location=0
ro.debuggable=0
ro.adb.secure=1 >>
ro.secure=0
ro.allow.mock.location=1
ro.debuggable=1
ro.adb.secure=0

  

2) 修改 /fstab.samsungexynos7420 和 fstab.samsungexynos7420.fwup有可能是
/system 改为不带 verify 的
修改内容:

/dev/block/platform/15570000.ufs/by-name/SYSTEM /system ext4 ro,errors=panic,noload wait,support_scfs,verify
>>
/dev/block/platform/15570000.ufs/by-name/SYSTEM /system ext4 ro,errors=panic,noload wait,support_scfs

  

有可能是fstab.qcom如果默认不带verify就不需要修改了!

3)修改 /init.rc

3.1)on late-init 后加入:

service injectsu /system/bin/sh /sbin/install-su.sh
class core
user root
oneshot

  3.2) ## Daemon processes to be run by init. 中加入

service fixdeep /system/bin/sh /sbin/init.fixdeepsleep.sh
class core
user root
oneshot

  3.3)最后加入:

service startsu /system/bin/sh /sbin/startsu.sh
class main
user root
oneshot

  

4) 增加额外的文件(Superuser,脚本)

$ARCH 可能是 arm64 或者 arm

/sbin/supersu/$ARCH/libsupol.so

/sbin/supersu/$ARCH/su

/sbin/supersu/$ARCH/supolicy

/sbin/supersu/common/99SuperSUDaemon

/sbin/supersu/common/install-recovery.sh

/sbin/supersu/common/Superuser.apk

/sbin/init.fixdeepsleep.sh

/sbin/install-su.sh

/sbin/startsu.sh

  注意, 一般来说boot.img分区不是很大, 很容易放入Superuser以后空间就不够了. 这时候可以不放入Superuser. 这样的boot.img刷入以后, 直接输入su就可以提权. 可以进入系统再安装一个Superuser也可以.. 或者放在cache.img.ext4里面也可以.. 然后修改install-su.sh脚本里面的

cp_perm 0 0 0644 $COM/Superuser.apk $APKNAME

  改成

cp_perm 0 0 0644 /cache/Superuser.apk $APKNAME

  按照这个套路搞好的boot.img刷入系统, 就可以获取到root权限了!

最新文章

  1. 剑指 offer set 6 打印从 1 到 N 的所有数
  2. [转]微软商店 打开就显示无法加载该页面 代码0x80131500?
  3. Flask 构建微电影视频网站(二)
  4. 【COGS2652】秘术「天文密葬法」(长链剖分,分数规划)
  5. Codeforces 786 A. Berzerk
  6. windows上安装RabbitMQ
  7. 线程中消费者生产者的实例代码(使用Lock类)
  8. 解决winform中mdi子窗体加载时显示最大化最小化按钮的方法
  9. Js apply()使用详解
  10. 转载 intellij IDEA 使用体验 (本人感觉它的使用是一种趋势)
  11. 字符串变量作mysql查询条件
  12. forward declaration of class 错误
  13. Meld:文件及目录对比工具
  14. 【Java基础】一些问题
  15. 使用Unicode写文本文件:一个简单类的示例
  16. 变量可以通过into赋值
  17. Ueditor .net版安装配置打开项目的源码傻瓜版教程 亲測~
  18. Mysql优化的方法
  19. WPF程序中的弱事件模式
  20. [学英语]vocabulary.com你都可以怎么用

热门文章

  1. 个人作业——软件工程实践总结&个人技术博客
  2. 05【掌握】 SpringBoot 清空Redis所有缓存
  3. LQR要点
  4. 服务认证(JWT)
  5. 泛型<T>,是你肿莫了,还是我错了...
  6. 使用SpringBoot构建REST服务-什么是REST服务
  7. Linux傻瓜式七步完美安装Python3.7
  8. HotSpot的类模型(3)
  9. 【经典DP】洛谷 P2782 友好城市
  10. Mister B and PR Shifts,题解