TWRP is a recovery image for Android devices. That is, it’s a tiny, self-contained operating system that you can boot to (often, by holding a button while booting the device) and perform operations such as backups, restores and installation of other images. One nice feature of TWRP is that it’s quite flexibly themeable; the theme’s aren’t just re-colours, you can move buttons around quite a bit.
Now, most of the instructions I’ve seen for installing a theme consist of the following:
* In the root of your SD card, find the TWRP folder
* Within that, create a folder theme
.
* Within that, store the theme zip as ui.zip
.
However, the Nexus 5 (and, I suspect, quite a few modern android devices) don’t come with a real SD card. Instead, that feature is emulated (in a variety of fun and interesting ways, to cope with how the SD card has been presented over history). So /sdcard
is a symlink to /storage/emulated/0/
, there’s also /storage/emulated/legacy
… /data/media/0
… and so on.
This last path is actually the most interesting. For some reason, /storage
doesn’t show up within TWRP, so the file I’d created was there in /data/media/0/TWRP/theme/ui.zip
. And yet, no matter which theme I downloaded, I couldn’t get anything but the default theme.
Then, I was having a browse around in the TWRP file manager and spotted /data/media/TWRP
. Note the missing 0. This is, as far as I can tell, a level above the SD card, so it’s probably actually on the root file system (or /data
, perhaps). I created /data/media/TWRP/theme
and, from my laptop did adb push ~/my_new_theme.zip /data/media/TWRP/theme/ui.zip
.
Lo and behold, after reloading the theme once more, my new theme showed up.
So, just a heads up that if you’re not able to install themes for TWRP, try putting them into /data/media/TWRP/theme/ui.zip
.