It’s possible to root the Android subsystem on Chromebooks
Chrome OS gained Android app support a few years ago. Chromebooks therefore have a functioning Android subsystem, which lets them run Android apps, run ADB shell, etc. (This is separate from the newer feature that allows Linux apps to be run on Chromebooks.) One of Android’s most famous characteristics is that it can be rooted to allow the user to gain full access to /system. It’s also possible to root the Android subsystem on Chromebooks thanks to the aroc project on Github.
The aroc project by developer nolirium brings Android root on Chrome OS. It does this by providing Chrome OS shell scripts to make a R/W copy of the Android container and copy su therein. This means that root apps can now work in the Android subsystem on Chromebooks, and Xposed also works.
The developer notes that the scripts have been tested on Chrome OS versions 54-67. The prerequisites of running the scripts are:
- A Chrome OS device that supports Android apps with storage space for a ~2GB file in /usr/local. The device must be in Developer Mode. Also, the Chrome OS system partition needs to have been made writeable, that is, rootfs verification needs to be disabled.
- Rootfs vertification can be disabled by running the following commands, and then rebooting:
sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions $(( $(rootdev -s | sed -r 's/.*(.)$/\1/') - 1))
Instructions to run the script
Users need to run a combined script in Chrome OS shell, which will auto-download and extract the required files. It is necessary to reboot after running the script.
curl -Ls https://raw.githubusercontent.com/nolirium/aroc/onescript/RootandSEpatch.sh | sudo sh
The user should then reboot, and open apps such as Root Checker to verify the presence of root. If the combined script does not work, they can manually run the commands to run script 1 and script 2. In this case, a reboot is required after running script 1 as well as after running script 2.
curl -Ls https://raw.githubusercontent.com/nolirium/aroc/master/01Root.sh | sudo sh
curl -Ls https://raw.githubusercontent.com/nolirium/aroc/master/02SEPatch.sh | sudo sh
The developer notes that updates to Chrome OS versions will usually overwrite any rootfs customizations, including those carried out by the script. Updating the su binary from within the SuperSU GUI app also may not work.
The current version of the script replaces the original Android system image with a symlink. If users need to revert to the original (unrooted) image, they will have to either manually restore the backup (the easiest option, according to the developer), or force an update e.g. with a channel change, or restore from USB.
Users can refer to the developer’s instructions here to install Xposed on Chrome OS using this script.