Nexus 7 Hardware information
The Nexus 7 comes with several types, genaration I and II, sales in 2012 and 2013. The Gen1 and Gen2 have different Processor, one is the NVIDIA Tegra, another with QCT APQ8064. These two type of devices, have different name: flo and grouper. And these 2
type tablet have different lunch target in Android/Cyanogenmod OS.
And I got a flo device[Nexus 7 (2013 Wifi) flo Asus], which have 2GB RAM and 16GB storage flash.
Build Procedure
Follow the instructions in the Cyanogenmod wiki page: Flo build
Requirement Before Build
If you have walk through the Flo_build guide, you‘ll notice that one step is run the shell script named "extract-files.sh" in section "Extract proprietary blobs", this step would got the proprietary files from the device running Cyanogenmod OS CM-12.1(same
version/branch with the code we want to build/checkout, this can got from the repo init inistruction) , using the adb pull.
So you‘d better download the prebuilt Cyanogenmod OS 12.1, then flash it into the Nexus 7 device.
The prebuilt iamges can be found at page: https://download.cyanogenmod.org/?device=flo
For the branch cm-12.1, that we would repo sync, using the below one :
flo | snapshot |
Download: cm-12.1-20151117-SNAPSHOT-YOG7DAO1K9-flo.zip (246.15 MB)
sha1: 6e016816289b350f5250aa6d317cf4a74a57e4b8 |
Download: cm-12.1-20151117-SNAPSHOT-YOG7DAO1K9-flo-recovery.img
sha1: e75f9142caccea5e23f05c3a2af53294c77c4afe |
2015-11-17 09:43:12 |
Errors or Problems I meet
Follow the build guide, I got several errors/questions:
- repo failed
- repo --force-sync option is not found
- isSelfManaged method is not implement in class SunlightEnhancement
1. repo failed
This comes with the Nation Firewall, so just get the ‘repo‘ from other sites
2. repo --force-sync
We can change the python file to avoid it, the file location is:
build/tools/roomservice.py
Just delete the options, the program would work OK without it.
And the --force-sync option got from the file:
vendor/cm/bash_completion/repo.bash
3. method is not implement
The compile error is like below:
vendor/cmsdk/cm/lib/main/java/org/cyanogenmod/platform/internal/CMHardwareService.java:310: error: cannot find symbol return SunlightEnhancement.isSelfManaged(); ^ symbol: method isSelfManaged() location: class SunlightEnhancement Note: vendor/cmsdk/src/java/cyanogenmod/profiles/ConnectionSettings.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. 1 error
We can manual add the function implement at file system/frameworks/opt/hardware/src/org/cyanogenmod/hardware/SunlightEnhancement.java (or search the filename to find it), then add the implement of method at Line58:
public static boolean isAdaptiveBacklightRequired() { return true; } public static boolean isSelfManaged() { return false; }
Some tips
root problem
There‘s an option in cyanogenmod OS, controlling the root permisions, you can change the setting in Development option(Root access):
Other OS can be root with NRK(Nexus RootKit)
The NRK have the windows installer and linux/Mac shell script. Just flow the intructions to root or backup.
Transfer the zip file through adb sideload
If you wipe all the data and system, you can use this method to burn the OS(for you don‘t have an OS anymore). After select the item(Upate--> From adb), you would check the adb status in PC terminal:
adb devices adb server is out of date. killing... * daemon started successfully * List of devices attached 08fee72f sideload
Then use the adb sideload commands to transfer the zip file:
$adb sideload out/target/product/flo/cm-12.1-20160321-UNOFFICIAL-flo.zip serving: ‘out/target/product/flo/cm-12.1-20160321-UNOFFICIAL-flo.zip‘ 244mb 1.00x total xfer: 244mb 1.00x
After transfered, reboot the device.
Wipe data, Format the partition using the Cyanomontion Recovery
You may wonder where is the wipe item option in Recovery menu, instead, select the Factory reset item in screen menu. Or using fastboot commands is a quick method
Reference
Flo device CM OS/Recovery image download page
Build CM12.1 from Source! [NOW-CAT&GRANDMA-FRIENDLY]
How to install a ROM through adb sideload