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
Log story short, Ubuntu Touch isn’t what I’m looking for, it is not very helpful with only the touchscreen.
That said, it is very good designed and Linux users may like it.
Featured image source: https://flic.kr/p/o7ZmL9
You need to 1) repartition the Nexus 7 to run an Android 9+ ROM and run an updated version of TWRP that accomodates this change You can read about it at this thread on XDA: https://forum.xda-developers.com/nexus-7-2013/orig-development/repartition-nexus-7-2013-repartition-t3844386 The other thing people tend not to notice is that if you have only a 16 gb Nexus 7 you’ll have a harder time flashing a Lineage OS ROM based on Android 9. No idea why honestly. I’ve got a 16 gb “flo” Nexus 7 and a 32 gb “deb” Nexus 7 and have used the deb_clamor_repartition.zip file to repartition both and install the modified TWRP recovery (that ends in _UA) on both. I can install Lineage ROMS fine on the deb device with 32 gb onboard but only AICP ROM and AOSP extended seem to run on the flo Nexus 7. The latter two run just fine once I flash either of those two ROM and use the “pico” version of Open GApps to install on the newly sized data partition. I hope this helps.
Thanks for your feedback. I’ll try the links. Do you know of this method can be reverted later to have the initial partition?
I don’t see why it couldn’t though I haven’t needed to revert to the stock setup as I’d rather have a version 9 Pie or 10 Q ROM on my Nexus to be more current. I’m running the last official Lineage 16 (Pie) on my flo and an unofficial Lineage 17 (Q ROM dated Nov 7 2019) on my 16 gb flo now. I found that the Lineage 17 ROM would install unlike the versions of 16 I’d tried earlier, so I’ve stuck with that and it’s been quite stable. The XDA thread I mentioned previously has been updated considerably since I left my previous note, though, so someone else might have tried it. The README documentation that comes with XDA-developer member Clamor’s repartitioning tool also suggests that it’s backward compatible for all previous ROMs, so it may be unnecessary, especially for a 32 gb device that has a little more breathing room. The TWRP recovery file would need to be twrp-3.2.3-1_UA-deb.img or newer though (the UA designating a TWRP modified to accomodate the repartitioning and is found in the same thread as the partitioning tool). Once the partition is reset, I would guess that you could likewise return to the offical TWRP version found here: https://twrp.me/asus/asusnexus72013lte.html
The XDA thread that I used for links to Android 10/Q on the Nexus 7 is here: https://forum.xda-developers.com/nexus-7-2013/development/rom-t3569067
Thank you for your feedback!
This is another alleged solution https://forum.xda-developers.com/showpost.php?p=76278047&postcount=19 but one that I have not personally tried. This https://forum.xda-developers.com/nexus-7-2013/development/rom-aicp-14-0-p-t3924163 is the AICP ROM that I’ve found to be the best, most recent one (in Sept 2019) for my flo Nexus 7.
I put LineageOS on my tablet earlier this year in part with help from this. The XDA guys will be able to help you with almost any question and issue.
I have been enjoying it as an ebook reader for many months now. It’s a *tad* slow, but if you keep to reading it shouldn’t matter. The screen is still amazing. I would buy another one if this breaks, few new tablets have the same PPI and small form factor to compete with this.
Great device worth the effort to bring up to date. PS shoutout to XprivacyLua, I won’t use an android device without it.
I have installed lineage 17.1 in my nexus 7 flo. It is working good. You may have to use the system partition zip file what you have to do is
once you are in twrp recovery go to wipe and select advanced wipe. wipe all except internal storage. return back once again to advanced wipe and select system and click on repair in the bottom and observe what is the free space available. comeback to recovery menu and flash system partition zip. You can recheck whether system is re-partitioned or not. If it is not please repeat one more time. Next flash lineage 17.1 zip. Next flash addon su 17.1 then followed by opengapps nano or pico with arm version. Finally flash recent magesik 21.0 zip . Reboot the system.
You should look at the scripts “Cross” and “Restock”. They both work for Deb and Flo.
Cross will install the latest LineageOS. It handles the repartitioning, installing, gapps, root. It’s mostly automated too. You can easily modify it to install any other ROM. The script is pretty easy to read. I think a novice would be ok messing with it.
Restock will return your tablet to stock, including changing the partitioning, if you changed it.
But .. it’s not necessary to change the partitioning back. The stock firmware fits fine on the modified partitions.
I’ve been playing with a stack of Nexus 7 2013 Deb tablets. Tonight, I restocked most of them. It’s like 2 minutes per tablet to restock, and another 7 or so for it to do first boot. I’ve been using LineageOS 17.1 on one constantly for a few weeks now. It works well.
Greetings to you…
came here in google search for info on how secure (or not) to continue using old but working nexus 7 in 2020 for web browsing, gmail & hotmail accounts etc, when the last android security patch was 2016.
I am not tech savvy, do not have ubuntu; can follow clear instructions though.
Advice on whether to attempt install of new OS or avoid browsing &/ or mail and just use offline will be greatly appreciated,
Thanks in advance, Ann
Perhaps try the CROSS script to install lineage:
Please comment with your real name using good manners.