<Making Progress> Compile 2013 Nexus 7 – Flash to device – Stuck a Google boot screen - Nexus 7 (2013) General

<Making Progress> Compile 2013 Nexus 7 – Flash to device – Stuck a Google boot screen
I am using the following device: 2013 Nexus 7
Android version: 4.3
Kernel version: [email protected]__ #1
Build number: JSS15Q
The problem:
When I try to flash a new boot.img file that contains my own recompiled kernel I am unable to boot the system – it sticks at the Google boot screen (and does not make it to the color X screen)
Below I have detailed out the steps I have taken. Please take a look and tell me if you notice if I am doing something wrong.
The following step were taken while running Ubuntu 12.04 LTS
*******************************************************************************************
Unlocking the 2013 Nexus 7 (Flo=wifi)
Rooting the 2013 Nexus 7 (Flo=wifi)
*** Compile/Recompile the kernel ***
*** Create a new boot.img file ***
….. contains instructions for getting root access
*** Flashing a new boot.img file ***
*******************************************************************************************
Unlocking the 2013 Nexus 7 (Flo=wifi)
Open a terminal and make sure that your system can see the Nexus 7, run:
$ ./adb devices
If you see the Nexus 7, run:
$. /adb reboot bootloader
When the bootloader screen has reappeared, run:
$ sudo ./fastboot devices
-If you can see the Nexus 7, run:
$ sudo ./fastboot oem unlock
-Look at the Nexus 7, a screen should appear asking you if you want to “Unlock the bootloader” – choose Yes.
You will need to use volume up/down to choose a response and press the power button to select.
- The device will flash a new image and exit to prompt
Next, reboot the device:
$ sudo ./fastboot reboot
The device is now unlocked.
*******************************************************************************************
Rooting the 2013 Nexus 7 (Flo=wifi)
*** Compile/Recompile the kernel ***
In the following steps you will be compiling/recompileing a kernel for the Nexus 7.
*Make sure that libncurses5-dev is installed (needed for make menuconfig)
Starting out I am at the following location
[email protected]:/home/user $
In your home directory create a folder named “Razor_Flo”:
$ mkdir Razor_Flo
Move into the new folder:
$ cd Razor_Flo
You should be here – [email protected]:/home/user/Razor_Flo $
In the Razor_Flo directory, create a sub directory named “Kernel”:
$ mkdir Kernel
Move into the new folder:
$ cd Kernel
You should be here – [email protected]:/home/user/Razor_Flo/Kernel $
[----------------- For the next steps, I used the following website to determine what files I needed -----------------]
__http__://source.android.com/source/building-kernels.html
Figuring out which kernel to build
[----------------------------------------------------------------------------------------------------------------------------------------------]
In the Kernel folder, download the following files:
$ git clone __https__://android.googlesource.com/device/asus/flo-kernel
$ cd flo-kernel
You should be here – [email protected]:/home/user/Razor_Flo/Kernel/flo-kernel $
$ git log --max-count=1 kernel
-- Log information will be displayed, under the “flo: prebuilt kernel” you will see a set of numbers and letters that will look like 365a6e0, note that number for future use.
Back out of the flo-kernel folder
$ cd ..
You should be here – [email protected]:/home/user/Razor_Flo/Kernel $
Once you are in the Kernel folder, download the following files:
$ git clone __https__://android.googlesource.com/kernel/msm.git
-- This command will create an msm directory
Move into the msm folder
$ cd msm
You should be here – [email protected]:/home/user/Razor_Flo/Kernel/msm $
[---------------------- For the next step, I used the following website to acquire the files I needed --------------------]
__http__://source.android.com/source/building-kernels.html
On a linux host, if you don't have an Android source tree, you can download the prebuilt toolchain from:
$ git clone __https__://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
[-----------------------------------------------------------------------------------------------------------------------------------------------]
Export the path to the prebuilt gcc files
$ export PATH=$PATH: <link to files>
Additional exports
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
Checkout the correct kernel files
$ git checkout 365a6e0 <-- the number you noted above
Make the Kernel
$ make flo_defconfig
* At this point you can use “make menuconfig” to make any changes to the .config file you need (i.e. kernel modifications)
$ make
* When the make is complete a file named zImage will be created here:
.../arch/arm/boot/zImage <-- Note this, you will need the file later
The kernel compile/recompile is now complete
*** Create a new boot.img file ***
In the following steps you will be taking apart the “Factory boot.img” so that you can create a “Modified boot.img” which will contain your modified and rooted kernel.
You should be here – [email protected]:/home/user/Razor_Flo/Kernel/msm $
Move up two directories
$ cd ../../
You should be here – [email protected]:/home/user/Razor_Flo $
[------------------------------------------------------- Tools need for next step -------------------------------------------------------]
You will need to download the following files.
-- split_bootimg.pl
__http__://code.google.com/p/zen-droid/downloads/detail?name=split_bootimg.pl
-- mkbootimg
__http__://code.google.com/p/zen-droid/downloads/detail?name=mkbootimg
-- 2013 Nexus Factory Images
__https__://dl.google.com/dl/android/aosp/razor-jss15q-factory-4f77b811.tgz
* You will need to copy this file to a unique location so that you can extract the “boot.img” that is located with it.
[------------------------------------------------------------------------------------------------------------------------------------------------]
Create a new folder named Workspace
$ mkdir Workspace
Enter the Workspace directory
You should be here – [email protected]:/home/user/Razor_Flo/Workspace $
Make two new folders in this directory
$ mkdir Original
$ mkdir Hacked
Move into the Hacked folder
You should be here – [email protected]:/home/user/Razor_Flo/Workspace/Hacked $
Create a new folders named Hacked_ramdisk
$ mkdir Hacked_ramdisk
Move up two directories – to the Workspace folder
$ cd ../../
You should be here – [email protected]:/home/user/Razor_Flo/Workspace $
Copy the 2013 Nexus 7 factory boot.img file into the ..Workspace/Original folder
-- can be found within the factory tgz file:
Copy the split_bootimg.pl file to the ..Workspace/Original folder
Copy the mkbootimg file to the ..Workspace/Hacked folder
Move the zIamge file to the ..Workspace/Hacked folder
Move to the Hacked folder
You should be here – [email protected]:/home/user/Razor_Flo/Workspace/Hacked $
Rename the zImage file to boot.img-kernel
Move up one directory - to the Workspace folder
You should be here – [email protected]:/home/user/Razor_Flo/Workspace $
Move to the Original folder
You should be here – [email protected]:/home/user/Razor_Flo/Workspace/Original $
Run the following command:
$ ./split_bootimg.pl boot.img
This will create two files, copy the boot.img-kernel and boot.img-ramdisk.gz
Copy the boot.img-ramdisk.gz file to the “Hacked/Hacked_ramdisk” folder
Move to the Hacked/Hacked_ramdisk folder
You should be here – [email protected]:/home/user/Razor_Flo/Workspace/Hacked/Hacked_ramdisk $
Run the following command:
$ sudo gzip -cd boot.img-ramdisk.gz | cpio -i
This will extract all the files with in the boot.img-ramdisk.gz file.
Delete the original boot.img-ramdisk.gz file that you just extracted the files from.
Edit the default.prop file
change ro.secure=1 to ro.secure=0
change ro.adb.secure=1 to ro.adb.secure=0
Save changes and close the file.
Run the following command :
$ find .| cpio -o -H newc | gzip > insecure_boot.img-ramdisk.gz
This will create a new file named insecure_boot.img-ramdisk.gz.
Rename the insecure_boot.img-ramdisk.gz. file to boot.img-ramdisk.gz and copy it up one folder in the hierarchy to the “Hacked” folder.
Move up one directory - ../Workspace/Hacked
You should be here – [email protected]:/home/user/Razor_Flo/Workspace/Hacked $
List the files in the ../Workspace/Hacked directory, there should be three files:
(1) boot.img-kernel, (2) boot.img-ramdisk.gz, & (3) mkbootimg
Run the following command from within the “Hacked” folder
$ ./mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel boot.img-kernel --ramdisk boot.img-ramdisk.gz -o mynewimage.img
Rename mynewimage.img to boot.img and flash on the device.
The new boot image is now complete and ready to flash.
*** Flashing a new boot.img file ***
[------------------------------------------------------- Tools need for next step -------------------------------------------------------]
You will need to download the following file.
-- 2013 Nexus Factory Images
__https__://dl.google.com/dl/android/aosp/razor-jss15q-factory-4f77b811.tgz
* You will need to copy this file to a unique location so that you can extract the “system.img” file that is located with it.
--- Android SDK (I used the 64-bit version)
__http__://dl.google.com/android/android-sdk_r22.0.5-linux.tgz
[------------------------------------------------------------------------------------------------------------------------------------------------]
You will need to use both the adb and fastboot utilites that come in the Android SDK application.
You will need two image to complete this task
1. boot.img <--file you just created, located in the ../Workspace/Hacked directory
2. system.img <-- can be found within the factory tgz file:
Starting out I am at the following location
[email protected]:/home/user/android-sdk/platform-tools $
Place both the boot.img and system.img files into the same folder as the adb and fastboot utilites.
Verify that you can see the Nexus 7 device that you are about to flash
$ sudo ./adb devices
*if you cannot see the device, make sure that you have checked the “enable USB Debugging” in the developer options.
Run the following commands
$ sudo ./adb reboot bootloader
$ sudo ./fastboot flash boot boot.img
$ sudo ./fastboot flash system system.img
$ sudo ./fastboot format cache
$ sudo ./fastboot format userdata
$ sudo ./fastboot restart
At this point the system should be unlocked and rooted.

Bump - still looking for help

Post your zImage.
Sent from my Nexus 4 using Tapatalk 4

Here is the zImage I created
Here is the zImage that I created.
I have rename it to chad.img
Thanks
jassycliq said:
Post your zImage.
Sent from my Nexus 4 using Tapatalk 4
Click to expand...
Click to collapse

Hi All
I am still looking for feedback - if anyone has any.
Thanks
Chad

Chady said:
Hi All
I am still looking for feedback - if anyone has any.
Thanks
Chad
Click to expand...
Click to collapse
I used this and I got it working:
http://source.android.com/source/initializing.html
I created the msm directory inside the flo-kernel directory as a place to put the kernel source. I don't know if that is right, or if it even matters, but it works for me. Then I had to move the zImage to out/product/target/flo/kernel before doing the make on the framework. Don't forget to do the "source build/envsetup.sh" and "lunch" before making the framework. Before compiling the kernel, be sure to set ARCH, SUBARCH and CROSS_COMPILE environment variables and make sure your PATH includes the prebuilt cross-compiler.

Making headway
Ok, So I made some headway lastnight.
I have not figured out how to compile the kernel on my own however, I am able to compile and boot an AOSP image for the 2013 Nexus 7
My problem getting the image to boot once compiled centered around drivers. I was under the impression that Android would work like Linux and Windows... meaning that if you did not have device drivers installed the OS would still boot - I was wrong. After installing the drivers (via the provided install .sh files) I then compiled the OS, flashed the device, and the system boot.
Now I am off to figure out how to get a custom kernel running.
Chad

for the benifit of others
Chady said:
Ok, So I made some headway lastnight.
I have not figured out how to compile the kernel on my own however, I am able to compile and boot an AOSP image for the 2013 Nexus 7
My problem getting the image to boot once compiled centered around drivers. I was under the impression that Android would work like Linux and Windows... meaning that if you did not have device drivers installed the OS would still boot - I was wrong. After installing the drivers (via the provided install .sh files) I then compiled the OS, flashed the device, and the system boot.
Now I am off to figure out how to get a custom kernel running.
Chad
Click to expand...
Click to collapse
For the benefit of others who might look at this forum in the future.
This is what is required to be done.
source.android.com/source/building-devices.html#obtaining-proprietary-binaries
I faced the same problem and took time to figure out what it really meant.
Also if it is in an infinite loop after the above procedure. Try doing fastboot flashall -w
-w option did the magic for me when I was stuck in an infinite loop after the above procedure.

Related

[DEV_TOOL] HTC ROM EXTRACTOR * UNRUU | DECRYPT/ENCRYPT rom.zip I REPACK system.img *

[DEV_TOOL] HTC ROM EXTRACTOR​
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Tools for working with firmware HTC in LINUX
fit Kenny Millington Source kmdm
(HOW TO)
PUSH THE BUTTON
! Requirements (libunshield v0.7 or higher):
Code:
$ sudo apt-get install automake
$ git clone https://github.com/kmdm/unshield.git
$ cd unshield/
$ git checkout -t origin/v18\_wip
$ ./bootstrap
$ ./configure --prefix=/usr
$ make
$ sudo make install
1. Extract from the zip and put the RUUXXXXXXXXX.exe to a folder with the tool;
2. Run in Terminal rom-extractor file and select the option:
MAIN MENU
u - UNRUU EXE TO ZIP - extract from the file rom.zip RUU.exe
d - DECRYPT MENU > DECRYPT MENU ROM.ZIP > OUTPUT.ZIP
r - REPACK MENU > REPACK MENU
e - ENCRYPT MENU >
c - CLEAN TOOL - Unmount and remove temporary files
x - exit
> DECRYPT MENU ROM.ZIP > OUTPUT.ZIP
1 ... 24 - decode the file rom.zip output.zip (select the target device)
> REPACK MENU
e - EXTRACT ZIP ROM - to extract the firmware from the ROM folder output.zip
m - MOUNT SYSTEM (EXT4 ONLY) - mount the partition image system.img in the folder system (you can add \ remove the firmware files)
d - DESPARSE SYSTEM.IMG (EXT4 ONLY) - uncompress the sparse image system.img (depending on the device - some zhaty, some not (determined EXPERIMENTAL)) and mount the partition image system.img in the folder system (you can add \ remove the firmware files)
s - MAKE SPARSE SYSTEM.IMG (EXT4 ONLY) - the creation of a sparse image sistem.img (you must specify the size of the partition XXXXM (device) - for example ONE X = 1280M)
n - UNMOUNT SYSTEM - dismount and delete the folder system
z - ADD SYSTEM.IMG > OUTPUT.ZIP - add new edited system.img into output.zip
> ENCRYPT MENU OUTPUT.ZIP > ROM.ZIP
1 ... 24 - create encrypt new rom.zip from output.zip
Thanks
as i9000 said:
[DEV_TOOL] HTC ROM EXTRACTOR​
Tools for working with firmware HTC in LINUX
fit Kenny Millington Source
(HOW TO)
PUSH THE BUTTON
! Requirements (libunshield v0.7 or higher):
Code:
$ git clone https://github.com/kmdm/unshield.git
$ cd unshield/
$ git checkout -t origin/v18\_wip
$ ./bootstrap
$ ./configure --prefix=/usr
$ make
$ sudo make install
1. Extract from the zip and put the firmware. Exe to a folder with the tool;
2. Run in Terminal rom-extractor file and select the option:
u - extract from the file rom.zip RUU.exe
1 ... 21 - decode the file rom.zip output.zip (select the target device)
e - to extract the firmware from the ROM folder output.zip
m - mount the partition image system.img in the folder system (you can add \ remove the firmware files)
n - dismount and delete the folder system
c - Clean all tools
x - exit
d - uncompress the sparse image system.img (depending on the device - some zhaty, some not (determined EXPERIMENTAL)) and mount the partition image system.img in the folder system (you can add \ remove the firmware files)
s - the creation of a sparse image sistem.img (you must specify the size of the partition XXXXM (device) - for example ONE X = 1280M)
Click to expand...
Click to collapse
i can not work and i can not runnig
R: [DEV_TOOL] HTC ROM EXTRACTOR extract RUU & repack system.img
lauri_ylonen said:
i can not work and i can not runnig
Click to expand...
Click to collapse
This is only for linux
Inviato dal mio GT-I9070 con Tapatalk 2
Are there plans to add the One S?
Nm. Just looked at the source.... Oops.
bedwa said:
Are there plans to add the One S?
Nm. Just looked at the source.... Oops.
Click to expand...
Click to collapse
INFO FOR ALL...
If your device is not supported and you would like it supported please open an issue in the tracker with the device name, codename and a link to the most recent hboot file for the device. (Not a link to the full RUU!)
Click to expand...
Click to collapse
Kenny Milington https://github.com/kmdm/ruuveal
anything more?..
I promise to add new binaries in my instrument as we update source
Not as all. The oops was cause I looked at the source and noticed the unpacker was One S supported. Lol.
Fixed a typo in paragraph 21
HTC One VX (tc2) > HTC One S (ville)
add
HTC_ROM-EXTRACTOR_v.0.0.3_x64
it seems that I'm doing something wrong.
[email protected]:~$ git clone https://github.com/kmdm/unshield.git
Cloning into 'unshield'...
remote: Counting objects: 569, done.
remote: Compressing objects: 100% (208/208), done.
remote: Total 569 (delta 370), reused 545 (delta 346)
Receiving objects: 100% (569/569), 116.31 KiB | 204 KiB/s, done.
Resolving deltas: 100% (370/370), done.
[email protected]:~$ cd unshield/
[email protected]:~/unshield$ git checkout -t origin/v18\_wip
Branch v18_wip set up to track remote branch v18_wip from origin.
Switched to a new branch 'v18_wip'
[email protected]:~/unshield$ ./bootstrap
Creating configure.ac...done.
+ aclocal -I m4
./bootstrap: 29: ./bootstrap: aclocal: not found
[email protected]:~/unshield$
Click to expand...
Click to collapse
can anyone help?
Maybe a more step-bystep guide,
Sorry for been noob
andrewschumi said:
it seems that I'm doing something wrong.
can anyone help?
Maybe a more step-bystep guide,
Sorry for been noob
Click to expand...
Click to collapse
sudo apt-get install automake
Added
v.o.o.4
22 - HTC One U (m7_u)
23 - HTC One UL (m7_ul)
24 - HTC Desire SV (magnids)
ADDED v.0.0.5
REBUILD TOOL
ADDED ENCRYPT MENU!!!
as i9000 said:
ADDED v.0.0.5
REBUILD TOOL
ADDED ENCRYPT MENU!!!
Click to expand...
Click to collapse
Could you please help? unruu never completes. It gives me this
Extracting temporary files...
Extracting rom zip files...
./unruu_exe: line 8: 4379 Aborted (core dumped) ./unruu ruu.exe
failed to open source zip: No such file or directory
That last line fails because decrypt is looking for a zip that was never made.
If i do ./unruu ruu.exe , I am given the following
[email protected]:~/Desktop/HTC_ROM-EXTRACTOR_v.0.0.5/tools$ ./unruu ruu.exe
Extracting temporary files...
Extracting rom zip files...
Aborted (core dumped)
Click to expand...
Click to collapse
this was done as root with the same result.
Perhaps I need to switch to all i386 binaries? Ill try that, but i was trying to avoid it, as it will break my current nvidia driver setup. ohwell
Tilde88 said:
Could you please help? unruu never completes. It gives me this
Extracting temporary files...
Extracting rom zip files...
./unruu_exe: line 8: 4379 Aborted (core dumped) ./unruu ruu.exe
failed to open source zip: No such file or directory
That last line fails because decrypt is looking for a zip that was never made.
If i do ./unruu ruu.exe , I am given the following
this was done as root with the same result.
Perhaps I need to switch to all i386 binaries? Ill try that, but i was trying to avoid it, as it will break my current nvidia driver setup. ohwell
Click to expand...
Click to collapse
Did you do this?
! Requirements (libunshield v0.7 or higher):
Code:
$ sudo apt-get install automake
$ git clone https://github.com/kmdm/unshield.git
$ cd unshield/
$ git checkout -t origin/v18\_wip
$ ./bootstrap
$ ./configure --prefix=/usr
$ make
$ sudo make install
Added version 0.0.6 x86-64
25 - HTC One WLS (m7_wls)
26 - HTC One SV (k2_u)
27 - HTC One SV (k2_plc_cl)
as i9000 said:
Did you do this?
! Requirements (libunshield v0.7 or higher):
Code:
$ sudo apt-get install automake
$ git clone https://github.com/kmdm/unshield.git
$ cd unshield/
$ git checkout -t origin/v18\_wip
$ ./bootstrap
$ ./configure --prefix=/usr
$ make
$ sudo make install
Click to expand...
Click to collapse
lol yes of course
Tilde88 said:
lol yes of course
Click to expand...
Click to collapse
OK, try to extract some different rom, may be you has problem from invalid ruu.exe..
and more, what size have your ruu.exe? - x32 systems, can't handle files largest 2GB...
as i9000 said:
OK, try to extract some different rom, may be you has problem from invalid ruu.exe..
and more, what size have your ruu.exe? - x32 systems, can't handle files largest 2GB...
Click to expand...
Click to collapse
im running x64, tried with x64 binaries, and i also tried using 32bit binaries. furthermore, my RUU is onlt 1.15GB. Also, x86 (there is not such thing as x32) can handle 3gb files.
thanks so much for the tool though, everything else workes, I juse used a script I found from another developer to get the .zip, then used your tool for all the other features.
Tilde88 said:
im running x64, tried with x64 binaries, and i also tried using 32bit binaries. furthermore, my RUU is onlt 1.15GB. Also, x86 (there is not such thing as x32) can handle 3gb files.
thanks so much for the tool though, everything else workes, I juse used a script I found from another developer to get the .zip, then used your tool for all the other features.
Click to expand...
Click to collapse
Well then stay one variant - you doesn't installed "Unshield", try run terminal and input 'unsield'
here the correct conclusion:
Code:
~$ unshield
No action provided on command line.
Syntax:
unshield [-c COMPONENT] [-d DIRECTORY] [-D LEVEL] [-g GROUP] [-i VERSION] [-GhlOrV] c|g|l|t|x CABFILE [FILENAME...]
Options:
-c COMPONENT Only list/extract this component
-d DIRECTORY Extract files to DIRECTORY
-D LEVEL Set debug log level
0 - No logging (default)
1 - Errors only
2 - Errors and warnings
3 - Errors, warnings and debug messages
-g GROUP Only list/extract this file group
-h Show this help message
-i VERSION Force InstallShield version number (don't autodetect)
-j Junk paths (do not make directories)
-L Make file and directory names lowercase
-O Use old compression
-r Save raw data (do not decompress)
-V Print copyright and version information
Commands:
c List components
g List file groups
l List files
t Test files
x Extract files
Other:
CABFILE The file to list or extract contents of
FILENAME... Optionally specify names of specific files to extract (wildcards are supported)
hi is there any chance to add the Desire HD. As i am trying to merge a Orange UK RUU for Desire DHD and they never released the last RUU with all the OTA's to make a New RUU with all the OTA's included.
I have made a Nandroid backup after all the OTA's was installed to the phone i even have all the OTA's just need a way to extract the rom.zip (easy from exe file not a issue) add the changed .img files such as radio, system, hboot recovery rcdata lib.img and make a new rom.zip and ruu.exe any way this can be done just tried with your tool and got invalid htc aes encrypted zip.
Thanks in advance

[GUIDE] Create your own Ubuntu Touch Image for TF101

This guide is designed to help you compile and flash your own Ubuntu Touch builds for the Asus TF-101.
All source links located in the XDA OP: http://forum.xda-developers.com/showthread.php?t=2168473
Original Instructions and Additional Information: https://wiki.ubuntu.com/Touch/Devices/tf101
Required: Ubuntu 12.04 – 13.04 (VM should work without issue)
Required: CWM Recovery or TWRP Recovery (No version restriction that I know of)
I take no credit for creating anything other than making it easier for the community to have fun and help contribute, please see the XDA OP and thank other members who are working hard to make this happen including JHoltom and Onkel Bebu.
If you are new to Linux please read these directions carefully. I have segmented them into "Setting Up Your Development Environment", "Building The Image", "Sync Repos and Update, "Common Commands and Actions"
Please note the directory locations are important. ~/ represents your home directory. So on my box my full path is /home/thomas/Build/Images/UbuntuTouch (you do not need to include Build, Images, or UbuntuTouch. Just make sure you replace "thomas" with your username or a suitable directory location of your choice but I reccommend using "UbuntuTouch" as your main directory. I will refer to ~/UbuntuTouch and sub-directories so you understand the paths.
Setting Up Your Development Environment
1. Open Terminal and copy/paste the command below. These are the packages needed to create the build before flashing.
sudo apt-get install git gnupg flex bison gperf build-essential zip bzr curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 schedtool​
2. The PPA has the tools and dependencies to support Precise, Quantal, and Raring. Add the Ubuntu Touch PPA (personal package archive) by adding the following custom source list entry to your /etc/apt/sources.list file.
2a. From Terminal, execute this command:
sudo add-apt-repository ppa: phablet-team/tools (remove space between colon and the p in phablet, if I didn't put a space it would show a smiley face instead)​
2b. (optional) If the above command does not work, you can manually edit your sources.list using an editor of your choice:
deb http://ppa.launchpad.net/phablet-team/tools/ubuntu [dist-codename] main
deb-src http://ppa.launchpad.net/phablet-team/tools/ubuntu [dist-codename] main
*Note: replace [dist-codename] with precise, quantal or raring​
3. From Terminal, execute these 2 commands:
sudo apt-get update
sudo apt-get install phablet-tools android-tools-adb android-tools-fastboot​
4. This next command is important but can be misleading. The Ubuntu Touch porting guide indicated running the command without options first. I had to use -c option to get it to work. If you are experimental do however you wish otherwise if you are new like me just stick with the first command I have listed.
4a. From Terminal, execute the following command:
phablet-dev-bootstrap -c ~/UbuntuTouch
(When prompted, enter name, no need to enter email, prompts for identity press Y if correct, choose Y for color display). This steps takes a fairly long time depending on network speed and your computer speed. It could be an hour or two.​
4b. (optional)Alternatively try this: phablet-dev-bootstrap
5. From Terminal, execute the following commands:
mkdir -p ~/UbuntuTouch/device/asus
mkdir -p ~/UbuntuTouch/kernel/asus​
6. Clone the following repositories into the directory ~/UbuntuTouch/device/asus/ and ~/UbuntuTouch/kernel/asus/ where git clone will be performed for the device and kernel git's respectively.
6a. From terminal, cd to "device" and "kernel" directories respectively to clone the repo into the right locations.
git clone https://github.com/jholtom/android_device_asus_tf101.git tf101 (this clones the git repo into ~/UbuntuTouch/device/asus/
git clone https://github.com/jholtom/kernel_asus_tf101-lumpy.git tf101 (this clones the git repo into ~/UbuntuTouch/kernel/asus/​
Building and Installing The Image
1. From Terminal, cd to ~/UbuntuTouch
1a. From Terminal, execute the following command:
. build/envsetup.sh​
2. From Terminal, execute the following command:
choosecombo release cm_tf101 eng && make -j{number of cores}+1 otapackage
To be clear, your command without quotes is based on single core, dual core, or quad core (the -j option adding 1) "choosecombo release cm_tf101 eng && make -j5 otapackage" (I have a quad core processor, if you had a dual core processor it would be make -j3)​
2a. If you get an error regarding signapk.jar, the file is not in the directory the make file is looking for.
2b. From Terminal, execute the following command:
cp ~/UbuntuTouch/prebuilts/sdk/tools/lib/signapk.jar ~/UbuntuTouch/out/host/linux-x86/framework​
3. Your new build will be called "cm_tf101-ota-eng.root.zip". The file will be located in ~/UbuntuTouch/out/target/product/tf101/.
4. To install your newly created image, boot your tf101 into Recovery.
Wipe data, factory reset. In this order only, first flash cm_tf101-ota-eng.root.zip (your newly created image).
Now download the preinstalled-phablet-armhf.zip from here: http://cdimage.ubuntu.com/ubuntu-touch/daily-preinstalled/current/ OR here: http://cdimage.ubuntu.com/ubuntu-touch-preview/quantal/
Now flash this file.
Clear cache and reboot the tf101.​
5. After your first image is made, it is up to you to choose a new daily build of preinstalled-phablet-armhf.zip and then simply repeat steps in this section.
6. To build the image again, all you need to do is execute steps 1, 1a., and 2.
Sync Repos and Updates
1. At any given time, the repos maintained on JHoltom's github may have updates. If you notice an update when you go to the github site, you will want to sync your local repos before building the image again.
1a. From Terminal, execute the following commands in the respective repo directories (either device OR kernel).
git pull (from ~/UbuntuTouch/device/asus/tf101)
git pull (from ~/UbuntuTouch/kernel/asus/tf101)​
Common Commands and Actions
This section answers some of the question about how and "now what" type things.
Source: https://wiki.ubuntu.com/Touch/ReleaseNotes
Additional Sources: Posts on XDA by JHoltom and Onkel Bebu
***NOTE***The password in all of these images you download is "phablet".
1. How do I access Ubuntu Touch local directories from my desktop using ADB?
1a. From Terminal, execute the following commands in order:
adb root
adb shell
ubuntu_chroot shell
sudo su -
ls​
2. How do I pull a log when the dev asks me to get a log?
2a. From Terminal, execute the following commands in order:
adb root
adb shell "for f in /data/ubuntu/home/phablet/.ubuntu-session/logs/*.log ; do echo \$f: ; cat \$f; echo ; done" > tf101.log
adb shell ls -la /data/ubuntu/etc/ubuntu-session.d/ >> tf101.log​
3. How do I install open-ssh server on the tablet?
3a. From Terminal, execute the following commands:
adb shell
ubuntu_chroot shell
sudo su -
apt-get install openssh-server​
4. How do I SSH into my tablet?
4a. You can SSH from the command line via Terminal OR install FileZilla on your Desktop/Laptop PC.
4b. From Terminal, execute the following commands:
adb shell
ubuntu_chroot shell
sudo su -
ip addr show wlan0
ssh [email protected]_of_device (This is the command for Terminal, otherwise open FileZilla and make your connection there. See question 5 for port forwarding.)​
5. How do I do SSH port forwarding for accessing the TF101 over USB/ADB SSH?
5a. From Terminal, execute the following commands:
adb forward tcp:8888 tcp:22
ssh [email protected] -p 8888​
6. I want to exit adb shell, how do I do it?
6a. From Terminal, you can type several "exit" commands or Ctrl + D till you are back to your home prompt.
7. How do I mount or see system files/directories?
7a. From Terminal in adb shell, execute this command:
sudo mount -t proc proc /proc​
TomTcom said:
Not finished yet, this is a WIP and I'll et you know when everything is done and good to go.
Click to expand...
Click to collapse
Amazing Work man! Hope this help developers to get functional Ubuntu on our Transformer!
TomTcom said:
-Snip-
Required: Linux 12.04 – 13.04 (VM should work without issue)
-snip-
Click to expand...
Click to collapse
Looks good, just one thing, you may want to change the wording of this part from Linux to Ubuntu as most linux distro's won't be version 12.04 or 13.04 and your guide is written for Ubuntu specifically. Other than that great write up
bfmetcalf said:
Looks good, just one thing, you may want to change the wording of this part from Linux to Ubuntu as most linux distro's won't be version 12.04 or 13.04 and your guide is written for Ubuntu specifically. Other than that great write up
Click to expand...
Click to collapse
You're right! Done, thanks!
Sent from my SGH-T999 using Tapatalk 2
Great job! Thanks!
Sent from my Transformer TF101 using Tapatalk 4 Beta
github Authentication
It asks for github Username and Password when trying to clone. Do i have to create account with them or what?
JahRush said:
It asks for github Username and Password when trying to clone. Do i have to create account with them or what?
Click to expand...
Click to collapse
I don't think you have to.
Are you typing the command exactly as the guide is?
You can go directly to the link through the browser. I just checked that. Try being root and git clone?
Sent from my SGH-T999 using Tapatalk 2
TomTcom said:
I don't think you have to.
Are you typing the command exactly as the guide is?
You can go directly to the link through the browser. I just checked that. Try being root and git clone?
Sent from my SGH-T999 using Tapatalk 2
Click to expand...
Click to collapse
Heh, was entering link as git clone ht tps://github.com/jholtom/android_d...asus_tf101.git
All good now, thanks!
Noob lost
Sorry if this stupid but I am getting this error and I don't know what to do next. I am trying to learn Linux and this stuff goes over my head.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
Can't find toolchain for unknown architecture:
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
Thanks.
shiangti said:
Sorry if this stupid but I am getting this error and I don't know what to do next. I am trying to learn Linux and this stuff goes over my head.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
Can't find toolchain for unknown architecture:
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
ls: cannot access device/*/tf101/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "full". Stop.
Thanks.
Click to expand...
Click to collapse
You might have missed some stuff. Go back through the guide and tell me what you think worked and didn't work.
Just remember quantal was the only build actually allowing the device to boot however new updates have broke it for our devices so you may want to try something else.
Besides the developer preview is old and fairly useless. Neon graphics engine was the issue. It's not supported on tegra 2.
Even if you build the file the device probably won't boot just so you know.
Sent from my SGH-T999 using Tapatalk 4
Very nice write up. Would this be usable for something like running siriproxy? (I know, a iOS thing on Linux, eek!)
Banetbc said:
Very nice write up. Would this be usable for something like running siriproxy? (I know, a iOS thing on Linux, eek!)
Click to expand...
Click to collapse
I suppose any thing's possible however I'm not a dev. Just dangerous enough to compile and tell others how to do it.
Personally don't use this guide unless you can figure out the new merges, put it together, and even get it to boot. See my post above, it doesn't even boot except on an old quantal build so save yourself time and headache.
Without the neon support for graphics even a successful build of the file only gives a black screen on boot up for non quantal builds.
Sent from my SGH-T999 using Tapatalk 4
Additionally it's based off an old developer preview and many functions and features are non existent on it.
Sent from my SGH-T999 using Tapatalk 4
Of topic: who well does the Ubuntu touch performs on the tf101?
Sent from my Transformer TF101
It's tough to say since many important features we would use were not available. I would characterize the working quantal build as just about "ok".
Sent from my SGH-T999 using Tapatalk 4
Thank you for your guide!
I got an error message when i was trying to run choosecombo (step 2 of Building and Installing The Image).
I already used your 2b command. The signapk.jar file is in the ~/UbuntuTouch/out/host/linux-x86/framework directory.
It tells me that it can't find the choosecombo command. What's wrong?
My OS is: Ubuntu 13.04 32 bit
Thank you for your help!

I'm trying to boot my Nexus 10 with your linux-kvm-arm kernel version 3.13...

Hello to everyone,
I'm trying to boot my Nexus 10 with another kind of kernel version,because I'm not interested to use the Android kernel,but the Ubuntu pure kernel. I've chosen to use the linux-kvm-arm kernel version 3.13 :
These are the commands that I have used :
git clone git://github.com/virtualopensystems/linux-kvm-arm.git
cd linux-kvm-arm
git checkout origin/chromebook-3.13 -b chromebook-3.13
curl http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/config > .config
and then I've added these lines to the .config file :
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ASHMEM=y
CONFIG_ANDROID_LOGGER=y
CONFIG_ANDROID_PERSISTENT_RAM=y
CONFIG_ANDROID_RAM_CONSOLE=y
CONFIG_ANDROID_TIMED_OUTPUT=y
CONFIG_ANDROID_TIMED_GPIO is not set
CONFIG_ANDROID_LOW_MEMORY_KILLER=y
CONFIG_ANDROID_SWITCH is not set
CONFIG_ANDROID_INTF_ALARM is not set
CONFIG_FB_TILEBLITTING=y
CONFIG_PHONE is not set
CONFIG_USB_WPAN_HCD is not set
CONFIG_WIMAX_GDM72XX is not set
CONFIG_ARM_PLATFORM_DEVICES=y
CONFIG_ARM_CHROMEOS_FIRMWARE=y
CONFIG_CHROMEOS=y
CONFIG_CHROMEOS_VBC_BLK=y
CONFIG_CHROMEOS_VBC_EC=y
CONFIG_CHROMEOS_RAMOOPS_RAM_START=0x41f00000
CONFIG_CHROMEOS_RAMOOPS_RAM_SIZE=0x00100000
CONFIG_CHROMEOS_RAMOOPS_RECORD_SIZE=0x00020000
CONFIG_CHROMEOS_RAMOOPS_DUMP_OOPS=0x1
CONFIG_CLKDEV_LOOKUP=y
and then I did :
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make uImage dtbs
from here I've followed the tutorial that I've found here :
http://forum.xda-developers.com/showthread.php?t=1981788
and here :
http://forum.xda-developers.com/showthread.php?t=1981788&page=2
mkdir -p newkernel
cd newkernel
wget -c https://dl.google.com/dl/android/aosp/mantaray-kot49h-factory-174ba74f.tgz
tar xvzf mantaray-kot49h-factory-174ba74f.tgz
cd mantaray-kot49h
unzip image-mantaray-kot49h.zip
wget -c http://android-serialport-api.googlecode.com/files/getramdisk.py
chmod +x getramdisk.py
./getramdisk.py boot.img --> ramdisk.img
wget -c http://android-serialport-api.googlecode.com/files/android_bootimg_tools.tar.gz
tar xvf android_bootimg_tools.tar.gz
./mkbootimg --kernel ../../linux-kvm-arm/arch/arm/boot/zImage --ramdisk ramdisk.img --cmdline bootimg.cfg -o new-boot.img
fastboot flash boot new-boot.img
I think that something is wrong here,because it is not able to boot....I see a black screen and nothing else happens...
Hi,
probably too simple, but:
How does your .config look?
Did the curl actually work? (I ask because I tried your URL and it didn't work for me).
Did you actually compile a guest kernel too and boot it?
Special ChromeOS suupport does not exist in that branch.
Keep up the work, if you succeed booting linux, I got a prize for you.
Don't take it wrong, I'm just too bored of the tablet as it is now.
Wejgomi

GUIDE: Extract vendor from stock firmware

Hello guys, Here I bring a guide for setting up stock dump folder, which could be used to extract propietary from stock firmware.
**IMPORTANT!! THIS GUIDE IS TARGET TO MAPLE WHICH DOESN'T HAVE SEPARATE VENDOR PARTITION
For XZ1/XZ1C and all newer phones which comes with Android 8+ need to unsin, mount & copy vendor at same time.
OK, let's start
1.Download the latest stock firmware by using [TOOL] XperiFirm ~ Xperia Firmware Downloader [v5.4.0]
2. UnSin System and Kernel sin files from stock firmware.
Code:
./path/to/unsin /path/to/Kernel*.sin
./path/to/unsin /path/to/System*sin
Then you will get Kernel image and System ext4 file. In case your UnSin doesn't have execute permission, run chmod +x /path/to/unsin
3.Unpack the Kernel image by using AIK Android Image Kitchen
/path/to/AIK-Linux/unpackimg.sh /path/to/kernel*.img
You will get a ramdisk folder for your stock dump, which would be the root of your dump folder.
4.Change the ramdisk folder owner to yourself
chown -R $USER:$USER ramdisk
5, Mount the System image on somewhere, (e.g. /mnt/system) and change its owner to yourself
Code:
sudo mkdir /mnt/system
sudo mount -o loop /path/to/system*.ext4 /mnt/system/
sudo chown -R $USER:$USER /mnt/system
6, Copy system to your ramdisk folder
cp -r /mnt/system/* /path/to/ramdisk/system/
Then you are ready to extract vendor from stock now, just run the extract script in your device tree and you're all done:
/path/to/extract-files.sh /path/to/ramdisk
ENJOY!!!
Give me like if it helped to you

Kernel building error

I try to compile kernel for Samsung SM-A510F. I got source from Samsung Open source.
My steps:
1.Create folder in home directory and extract kernel.tar.gz there.
2.Create another folder in home directory and download compiler
$ mkdir bin
$ cd bin
$ git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9
3.
$ cd aarch64-linux-android-4.9
$ export SUBARCH=arm64
$ export ARCH=arm64
$ export CROSS_COMPILE=~/bin/aarch64-linux-android-4.9/bin/aarch64-linux-android-
4.
make menuconfig. Save default settings just to make .config file
5.
In kernel folder
$ make clean
$ make mrproper
$ make ARCH=arm64 exynos7580-a5xelte_defconfig
$ make -j 8
I received compiler patch error and other errors. Maybe I used wrong guide? Please, point me to right direction!
.

Categories

Resources