Android: read only filesystem

My Android mobile phone runs MicroG's LineageOS 14.1 version, and I wanted to add a gamepad controller configuration file onto the phone's system partition.


The system partition is only writable by the root user, but LineageOS by default does not have the su binary installed - you need to download it separately.

The LineageOS' developer settings also have a "root access" setting that has only two options:

But how to you get root access with adb? It turns out that there is a direct command for it:

$ adb root
$ adb shell
$ whoami

read-only filesystem

After becoming root, I wanted to move the key layout file to the correct place:

$ adb push Vendor_2836_Product_0001.kl /sdcard/
$ adb shell
$ mv /sdcard/Vendor_2836_Product_0001.kl /system/usr/keylayout/
Error: read only filesystem

The /system partition is mounted as read-only, and I had to re-mount it as read/write:

$ adb root
$ adb shell
$ mount -o rw,remount /system
$ mv /sdcard/Vendor_2836_Product_0001.kl /system/usr/keylayout/
# .. success

Afterwards I changed owner, group and permissions of my file to be the same as those of the other files in the keylayout directory.

Written by Christian Weiske.

Comments? Please send an e-mail.