I was a big fan of the Nexus products brought by Google with pure Android experience, and I enjoyed repairing their hardware myself when they were broken, I repaired Nexus phones and tablets (4/5/7) screens, batteries, buttons, and chargers dozen times, but I’ve never had to change their native Android OS.
Here I’m trying to give a second life to my Nexus 7 (2013) LTE that is still in a perfect condition, sleeping in my library between books, with an obsolete Android 6.0.1 and a security patch of May 2016.
In this post I’ll document the different ways and tools I’m trying to bring a recent and up to date Android versions in a Nexus 7 (2013) LTE, please note that this is a work in progress, so I’ll add new details from time to time.
Nexus 7 2013 LTE
Android version: 6.0.1
Android security patch level: May 2016
PRODUCT NAME – deb
VARIANT – deb 32G
HW VERSION – rev_e
BOOTLOADER VERSION – FLO-04.06
BASEBADN VERSION – DEB-Z00_2.44.0_0213
CARRIER INFO – None
SERIAL NUMBER –
SIGNING – yes
SECURE BOOT – enabled
LOCK STATE – locked
–> Never altered anything in the tablet: No root, no specific bootloader or recovery, no oem unlock…etc.
Step 0: Backup
Never say it enough, the next steps will remove everything on the tablet, so if you have important files and data save them.
Step 1: Install TWRP
From what I know, the first step is to install TWRP that will allow me to install any specific ROM with more options.
TWRP replaces the default stock recovery mode of Android, it needs unlocked bootloader, and that means that the tablet reset will not be the same as before.
Here is the official tutorial to install TWRP on Nexus 7 2013 LTE : https://twrp.me/asus/asusnexus72013lte.html
Since I have non root device and no installed TWRP app, I’ll follow the Fastboot Install Method.
Fastboot Install Method requires ADB and Fastboot tool that I already have on my PC.
It requires also to enable USB debugging.
For ADB/Fastboot, download them from Android website here: https://developer.android.com/studio/releases/platform-tools
To enable USB debug: Options -> Developer options -> Toggle on the “USB debugging”.
(If you see a pop up asking for permission for the PC, accept it)
If you don’t see the Developer options menu: Options -> About tablet -> Press 7x Build number
You can test Android tools and USB debugging by making a simple reboot.
Open a command console, go to the ADB directory and:
Download latest TWRP for Nexus 7 2013 here: https://eu.dl.twrp.me/deb/
Note: “deb” is the codename of the tablet, not to be confused with debian or deb package of Linux.
Copy it in the ADB directory.
Reboot the tablet in bootloader mode:
adb reboot bootloader
Flash the TWRP image as recovery:
fastboot flash recovery twrp-3.1.1-0deb.img
Doing that without unlocking the bootloader gives the below error:
FAILED (remote: ‘Bootloader is locked.’)
Unlocking the bootloader with the command:
fastboot oem unlock
Select “Yes” with volume buttons, and confirm with ON/OFF button.
As I mentioned before all data will be lost.
This will take about a minute, after that the bootloader screen will show again, and the line LOCK STATE will be “unlocked”.
Try again to flash the TWRP image as recovery:
fastboot flash recovery twrp-3.1.1-0deb.img
This time it should work correctly.
Reboot the tablet:
The tablet reboot in TWRP UI, but after some time it shows red errors:
Failed to mount ‘/data’ (Invalid argument)
The tablet will be in a loop reboot again and again showing the same errors.
I think that this is because TWRP can’t access or decrypt my data partition (that I don’t care about anyway…)
Trying to wipe my data: Turn OFF the phone, then press ON & Volume down to be in bootloader menu.
Wipe user data and reboot in TWRP recovery:
fastboot format userdata
fastboot reboot recovery
I don’t see anymore the errors in TWRP console start up, after 2 tries to boot in recovery, I can see TWRP menu.
Swipe to allow modifications.
Now I have all the options to install/wipe/backup/restore… ROMs on my tablet.
The next step? Find a good ROM and install it!
Step 1: Install LineageOS
This distribution is recommended as lightweight, not too much different from stock version and with more options.
LineageOS is the old famous Cyanogen(Mod) ROM.
Nexus 7 is no more supported by LineageOS, There is two options to have it:
1- Build yourself the image following the instructions: https://wiki.lineageos.org/devices/flo/build
2- Use an image built by someone else, the recent one I found is in XDA forums: [ROM][UNOFFICIAL] LineageOS 16.0 [deb][flo]
To go fast and just have a look to the UI and overall system I’ll use directly the latest image built downloaded here: lineage-16.0-20190808-UNOFFICIAL-deb.zip (Size 7363Mo)
It is recommended to install Open GApps at the same time, otherwise it will not be possible to configure a Google account, download apps…etc. Download it here https://opengapps.org/, choose as configuration ARM/9.0/Pico.
Copy the two zip file in the ADB directory.
Boot the tablet in recovery mode of TWRP.
Wipe the partitions (system, data, …)
Go back and select Advanced -> Sideload, adnd swipe to confirm.
(Sideload gives the possibility to install zip images from the PC.)
On PC side, check it:
It should show the serial number of the tablet and the status sideload
Flash the LineageOS image:
adb sideload lineage-16.0-20190808-UNOFFICIAL-deb.zip
You can see the percentage progress in the console and in the TWRP UI.
Honestly I don’t know if I have to install the two zip simultaneously (I think there is a way to select them but not in sideload) or one after the other, so I did first LineageOS, then went back to sideload again and started for Open GApps.
adb sideload open_gapps-arm64-9.0-pico-20190810.zip
Anyway the Open GApps didn’t work with error 64, I did an error, the tablet architecture is ARM, not ARM64 as I selected in the website.
Downloaded the correct version again: open_gapps-arm-9.0-pico-20190810.zip (93MB)
adb sideload open_gapps-arm-9.0-pico-20190810.zip
The installation failed for another reason this time (error 70), saying insufficient storage space in system partition, knowing that I chose the very small version Nano…
Is this due to the Android 9 version that takes all the system partition of a 2013 device?
Comparing LineageOS image to last Google image there is +200MB more.
That said, trying to install Open GApps stock with 600MB will be a big challenge later…
I found in TWRP menu a way to resize the system partition:
Wipe -> Advanced Wipe -> Check “System” partition -> Repair or Change File System
Here you can find the information about the partition:
Backup Size: 782MB
The free space of 55MB isn’t sufficient for any Open GApps version even the Nano with 93MB.
Pressing the button “Resize File System” has no effect and I don’t see how to specify the size to take from Data partition.
At this level I think I need to find a way to change the Nexus partition, and this is a normal issue since I’m trying to install recent OS that are bigger than the ones used back to 2013.
To be continued.
Step 1: Install Ubuntu Touch
I just discovered a great alternative to Android that I can install in my Nexus 7 : Ubuntu Touch.
Nexus 7 is one of a list of devices that are supported with up to date software.
You can install it using depending on your pc OS, the following instructions are for my Ubuntu PC.
Install ADB if not already done:
sudo apt install adb fastboot
Create a folder where you will save OS images (in tmp if you don’t want to keep them) :
Execute the next commands in the folder to download and check:
wget http://cdimage.ubports.com/devices/recovery-deb.img -O recovery.img && echo "432ee1d970b3b18e74fc80e5c0d091d87598505fe371676b80d20b16df2ea089 recovery.img" | sha256sum -c
mkdir pool gpg
wget https://system-image.ubports.com//pool/ubports-a1f443971032f2b6a03ed6f83d3340e026d59bfbe1625b259fb77eb05fa2b6a9.tar.xz -O pool/ubports-a1f443971032f2b6a03ed6f83d3340e026d59bfbe1625b259fb77eb05fa2b6a9.tar.xz && echo "84274fa597150533c8ea26a4a0e6737c2e5810cc752458ab53b596b79c941389 pool/ubports-a1f443971032f2b6a03ed6f83d3340e026d59bfbe1625b259fb77eb05fa2b6a9.tar.xz" | sha256sum -c
wget https://system-image.ubports.com//pool/ubports-a1f443971032f2b6a03ed6f83d3340e026d59bfbe1625b259fb77eb05fa2b6a9.tar.xz.asc -O pool/ubports-a1f443971032f2b6a03ed6f83d3340e026d59bfbe1625b259fb77eb05fa2b6a9.tar.xz.asc && echo OK
wget https://system-image.ubports.com//pool/device-63b6937bca770c2f484847f557fe75e579cb5eeef013c11e1dea661644dd13fc.tar.xz -O pool/device-63b6937bca770c2f484847f557fe75e579cb5eeef013c11e1dea661644dd13fc.tar.xz && echo "d85035887a8385d4eef1ccbcf0f56d974d15595d428194a207639411c8739b49 pool/device-63b6937bca770c2f484847f557fe75e579cb5eeef013c11e1dea661644dd13fc.tar.xz" | sha256sum -c
wget https://system-image.ubports.com//pool/device-63b6937bca770c2f484847f557fe75e579cb5eeef013c11e1dea661644dd13fc.tar.xz.asc -O pool/device-63b6937bca770c2f484847f557fe75e579cb5eeef013c11e1dea661644dd13fc.tar.xz.asc && echo OK
wget https://system-image.ubports.com//pool/keyring-4c4e7ef380ebcfa2c31084efa199138e93bfed8fc58aa3eb06bdf75a78af9b57.tar.xz -O pool/keyring-4c4e7ef380ebcfa2c31084efa199138e93bfed8fc58aa3eb06bdf75a78af9b57.tar.xz && echo "5b6e870acf8944330acb2a9dad6f5270bd06c377603a3115f805290e989ab421 pool/keyring-4c4e7ef380ebcfa2c31084efa199138e93bfed8fc58aa3eb06bdf75a78af9b57.tar.xz" | sha256sum -c
wget https://system-image.ubports.com//pool/keyring-4c4e7ef380ebcfa2c31084efa199138e93bfed8fc58aa3eb06bdf75a78af9b57.tar.xz.asc -O pool/keyring-4c4e7ef380ebcfa2c31084efa199138e93bfed8fc58aa3eb06bdf75a78af9b57.tar.xz.asc && echo OK
wget https://system-image.ubports.com//ubports-touch/16.04/stable/deb/version-9.tar.xz -O pool/version-9.tar.xz && echo "e113f885607c9aa6a45ee60cf6cf2d546ea411d0b46ac486050435e5624bc6b3 pool/version-9.tar.xz" | sha256sum -c
wget https://system-image.ubports.com//ubports-touch/16.04/stable/deb/version-9.tar.xz.asc -O pool/version-9.tar.xz.asc && echo OK
wget https://system-image.ubports.com/gpg/image-signing.tar.xz -O gpg/image-signing.tar.xz && echo OK
wget https://system-image.ubports.com/gpg/image-signing.tar.xz.asc -O gpg/image-signing.tar.xz.asc && echo OK
wget https://system-image.ubports.com/gpg/image-master.tar.xz -O gpg/image-master.tar.xz && echo OK
wget https://system-image.ubports.com/gpg/image-master.tar.xz.asc -O gpg/image-master.tar.xz.asc && echo OK
On the tablet you have to enable the USB debug.
My tablet bootloader is already unlocked.
Reboot on bootloader:
adb reboot bootloader
Wipe data and system:
fastboot format userdata fastboot format system
Featured image source: https://flic.kr/p/o7ZmL9