【原创】手动Root Bluestacks的方法
手动Root Bluestacks的方法
准备:
1、SuperSU的刷机zip文件,如:BETA-SuperSU-v2.66.zip
2、安装好的Bluestacks,需要BlueStacks' Root.fs文件,位于目录 X:\ProgramData\BlueStacks\Android\中。
3、带超级权限的CDliunx,VMware虚拟机中运行!
步骤:
一、复制BETA-SuperSU-v2.66.zip和Root.fs到U盘中,连接到运行在虚拟机中的CDliunx。
二、解压SuperSU.zip到 /tmp/supersu
三、新建 /tmp/rootfs文件夹,打开超级用户终端,挂载Root.fs,输入:
mount -o loop /media/E30_sdc1/Root.fs /tmp/rootfs
四、复制以下5个SuperSU的文件到挂载的rootfs中,输入:
cp -f /tmp/supersu/x86/su /tmp/rootfs/android/system/xbin/su
cp -f /tmp/supersu/x86/su /tmp/rootfs/android/system/xbin/daemonsu
cp -f /tmp/supersu/x86/supolicy /tmp/rootfs/android/system/xbin/supolicy
cp -f /tmp/supersu/x86/libsupol.so /tmp/rootfs/android/system/lib/libsupol.so
cp -f /tmp/supersu/common/Superuser.apk /tmp/rootfs/android/system/app/Superuser.apk
五、修改文件的所有者和各用户组的权限:
1、复制到挂载的rootfs中的5个5个SuperSU文件,所有者都必须是:root:root
相关命令:
查看文件权限:
ls -l /tmp/rootfs/android/system/xbin/su
修改文件所有者:
chmod root:root /tmp/rootfs/android/system/xbin/su
2、修改5个文件的权限:
可执行文件 (su, supolicy 和 daemonsu) 的用户组权限必须是:-rwxrwxr-x,数字:0775。
输入命令:
chmod 775 /tmp/rootfs/android/system/xbin/su
chmod 775 /tmp/rootfs/android/system/xbin/daemonsu
chmod 775 /tmp/rootfs/android/system/xbin/supolicy
库文件 (libsupol.so) 的用户组权限必须是:-rw-rw-r--,数字:0664。
输入命令:
chmod 664 /tmp/rootfs/android/system/lib/libsupol.so
Superuser.apk文件的用户组权限必须是:-rw-rw-r--,数字:0664。
输入命令:
chmod 664 /tmp/rootfs/android/system/app/Superuser.apk
附:权限是由rwx合起来表示,就是4 2 1=7,一个rwxrwxrwx权限全开放的文件,数值表示为777;而完全不开放权限的文件“---------”其数字表示为000。例如:
-rwx------:等于数字表示700。
-rwxr--r--:等于数字表示744。
-rw-rw-r-x:等于数字表示665。
drw--x--x:等于数字表示711。
drwx------:等于数字表示700。
六、需要在每次Bluestacks启动时,运行"daemonsu",修改Bluestacks系统中的init.sh来实现。
用文本编辑器Leafpad直接打开 /tmp/rootfs/android/system/etc/init.sh(最好不要复制init.sh文件到其它地方修改,再把修改好的替换掉Root.fs中的init.sh文件,那样会修改init.sh文件的原所有者),找到如下片段:
init|"")
do_init
;;
esac
修改为:
init|"")
do_init
/system/xbin/daemonsu --auto-daemon &
;;
esac
修改完成后,保存退出。
七、卸载Root.fs
退出终端,关闭所有程序,重新打开超级用户终端。
输入命令:
umount /tmp/rootfs
八、到此Root.fs就完全修改好了,Bluestacks 的Root工作就完成了。
退出CDliunx,把修改好的Root.fs替换掉Bluestacks安装目录下的\Android\Root.fs,原Root.fs文件最好不要删除,重命名后再复制修改好的Root.fs文件。
重启Bluestacks,不出意外的话,Bluestacks已经是Root的了。
注:
此方法实测过以下版本:
BlueStacks 0.10.7.5601
BlueStacks 2.0.0.1011
BlueStacks 2.0.1.5621
其它版本暂时没有测试。
准备:
1、SuperSU的刷机zip文件,如:BETA-SuperSU-v2.66.zip
2、安装好的Bluestacks,需要BlueStacks' Root.fs文件,位于目录 X:\ProgramData\BlueStacks\Android\中。
3、带超级权限的CDliunx,VMware虚拟机中运行!
步骤:
一、复制BETA-SuperSU-v2.66.zip和Root.fs到U盘中,连接到运行在虚拟机中的CDliunx。
二、解压SuperSU.zip到 /tmp/supersu
三、新建 /tmp/rootfs文件夹,打开超级用户终端,挂载Root.fs,输入:
mount -o loop /media/E30_sdc1/Root.fs /tmp/rootfs
四、复制以下5个SuperSU的文件到挂载的rootfs中,输入:
cp -f /tmp/supersu/x86/su /tmp/rootfs/android/system/xbin/su
cp -f /tmp/supersu/x86/su /tmp/rootfs/android/system/xbin/daemonsu
cp -f /tmp/supersu/x86/supolicy /tmp/rootfs/android/system/xbin/supolicy
cp -f /tmp/supersu/x86/libsupol.so /tmp/rootfs/android/system/lib/libsupol.so
cp -f /tmp/supersu/common/Superuser.apk /tmp/rootfs/android/system/app/Superuser.apk
五、修改文件的所有者和各用户组的权限:
1、复制到挂载的rootfs中的5个5个SuperSU文件,所有者都必须是:root:root
相关命令:
查看文件权限:
ls -l /tmp/rootfs/android/system/xbin/su
修改文件所有者:
chmod root:root /tmp/rootfs/android/system/xbin/su
2、修改5个文件的权限:
可执行文件 (su, supolicy 和 daemonsu) 的用户组权限必须是:-rwxrwxr-x,数字:0775。
输入命令:
chmod 775 /tmp/rootfs/android/system/xbin/su
chmod 775 /tmp/rootfs/android/system/xbin/daemonsu
chmod 775 /tmp/rootfs/android/system/xbin/supolicy
库文件 (libsupol.so) 的用户组权限必须是:-rw-rw-r--,数字:0664。
输入命令:
chmod 664 /tmp/rootfs/android/system/lib/libsupol.so
Superuser.apk文件的用户组权限必须是:-rw-rw-r--,数字:0664。
输入命令:
chmod 664 /tmp/rootfs/android/system/app/Superuser.apk
附:权限是由rwx合起来表示,就是4 2 1=7,一个rwxrwxrwx权限全开放的文件,数值表示为777;而完全不开放权限的文件“---------”其数字表示为000。例如:
-rwx------:等于数字表示700。
-rwxr--r--:等于数字表示744。
-rw-rw-r-x:等于数字表示665。
drw--x--x:等于数字表示711。
drwx------:等于数字表示700。
六、需要在每次Bluestacks启动时,运行"daemonsu",修改Bluestacks系统中的init.sh来实现。
用文本编辑器Leafpad直接打开 /tmp/rootfs/android/system/etc/init.sh(最好不要复制init.sh文件到其它地方修改,再把修改好的替换掉Root.fs中的init.sh文件,那样会修改init.sh文件的原所有者),找到如下片段:
init|"")
do_init
;;
esac
修改为:
init|"")
do_init
/system/xbin/daemonsu --auto-daemon &
;;
esac
修改完成后,保存退出。
七、卸载Root.fs
退出终端,关闭所有程序,重新打开超级用户终端。
输入命令:
umount /tmp/rootfs
八、到此Root.fs就完全修改好了,Bluestacks 的Root工作就完成了。
退出CDliunx,把修改好的Root.fs替换掉Bluestacks安装目录下的\Android\Root.fs,原Root.fs文件最好不要删除,重命名后再复制修改好的Root.fs文件。
重启Bluestacks,不出意外的话,Bluestacks已经是Root的了。
注:
此方法实测过以下版本:
BlueStacks 0.10.7.5601
BlueStacks 2.0.0.1011
BlueStacks 2.0.1.5621
其它版本暂时没有测试。