Kernel source code is here - Nexus 9 General

is here
https://android.googlesource.com/kernel/tegra/+/android-tegra-flounder-3.10-lollipop-release
https://copy.com/BgijUxCRXo8LB6EE = download
and i cant seem to figure out how to compile it
if some one can help me pls help
i do know how to compile a nexus7 2012 kernel
but not the nexus 9

Did it just get released? Really looking forward to some kernel love for this bad boy
Smashed down on the mighty Nexus 9

Gormsen said:
Did it just get released? Really looking forward to some kernel love for this bad boy
Smashed down on the mighty Nexus 9
Click to expand...
Click to collapse
Well i think it got released like yesterday

USBhost said:
and i cant seem to figure out how to compile it
Click to expand...
Click to collapse
compiled and runs fine for me
Code:
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ export PATH=$(pwd):/mnt/500GB_SSD/Android/AOSP_5/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin:$PATH
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ export ARCH=arm64
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ export SUBARCH=arm64
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ export CROSS_COMPILE=aarch64-linux-android-
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ make flounder_defconfig
..........
SYSMAP System.map
DTC arch/arm64/boot/dts/tegra132-flounder-xaxb.dtb
DTC arch/arm64/boot/dts/tegra132-flounder-xc.dtb
DTC arch/arm64/boot/dts/tegra132-flounder-xdxepvt.dtb
DTC arch/arm64/boot/dts/tegra132-flounder_lte-xaxbxcxdpvt.dtb
OBJCOPY arch/arm64/boot/Image
GZIP arch/arm64/boot/Image.gz
DTC arch/arm64/boot/dts/tegra132-flounder-xaxb.dtb
DTC arch/arm64/boot/dts/tegra132-flounder-xc.dtb
DTC arch/arm64/boot/dts/tegra132-flounder-xdxepvt.dtb
DTC arch/arm64/boot/dts/tegra132-flounder_lte-xaxbxcxdpvt.dtb
CAT arch/arm64/boot/Image.gz-dtb
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ cp boot.img.skip boot.img.test
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ abootimg -u boot.img.test -k arch/arm64/boot/Image.gz-dtb
reading kernel from arch/arm64/boot/Image.gz-dtb
Writing Boot Image boot.img.test
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ adb reboot bootloader
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ fastboot boot boot.img.test
downloading 'boot.img'...
OKAY [ 0.490s]
booting...
OKAY [ 0.159s]
finished. total time: 0.649s
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ adb wait-for-device shell
[email protected]:/ $ cat /proc/version
Linux version 3.10.40-g07fc5e6 ([email protected]) (gcc version 4.9 20140514 (prerelease) (GCC) ) #1 SMP PREEMPT Wed Nov 5 18:18:39 EST 2014

gianptune said:
compiled and runs fine for me
Code:
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ export PATH=$(pwd):/mnt/500GB_SSD/Android/AOSP_5/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin:$PATH
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ export ARCH=arm64
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ export SUBARCH=arm64
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ export CROSS_COMPILE=aarch64-linux-android-
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ make flounder_defconfig
..........
SYSMAP System.map
DTC arch/arm64/boot/dts/tegra132-flounder-xaxb.dtb
DTC arch/arm64/boot/dts/tegra132-flounder-xc.dtb
DTC arch/arm64/boot/dts/tegra132-flounder-xdxepvt.dtb
DTC arch/arm64/boot/dts/tegra132-flounder_lte-xaxbxcxdpvt.dtb
OBJCOPY arch/arm64/boot/Image
GZIP arch/arm64/boot/Image.gz
DTC arch/arm64/boot/dts/tegra132-flounder-xaxb.dtb
DTC arch/arm64/boot/dts/tegra132-flounder-xc.dtb
DTC arch/arm64/boot/dts/tegra132-flounder-xdxepvt.dtb
DTC arch/arm64/boot/dts/tegra132-flounder_lte-xaxbxcxdpvt.dtb
CAT arch/arm64/boot/Image.gz-dtb
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ cp boot.img.skip boot.img.test
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ abootimg -u boot.img.test -k arch/arm64/boot/Image.gz-dtb
reading kernel from arch/arm64/boot/Image.gz-dtb
Writing Boot Image boot.img.test
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ adb reboot bootloader
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ fastboot boot boot.img.test
downloading 'boot.img'...
OKAY [ 0.490s]
booting...
OKAY [ 0.159s]
finished. total time: 0.649s
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ adb wait-for-device shell
[email protected]:/ $ cat /proc/version
Linux version 3.10.40-g07fc5e6 ([email protected]) (gcc version 4.9 20140514 (prerelease) (GCC) ) #1 SMP PREEMPT Wed Nov 5 18:18:39 EST 2014
Click to expand...
Click to collapse
O lol i for got to set it to arm64 lol

gianptune said:
compiled and runs fine for me
Code:
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ cp boot.img.skip boot.img.test
[email protected]:/mnt/500GB_SSD/Android/nexus9/tegra$ abootimg -u boot.img.test -k arch/arm64/boot/Image.gz-dtb
reading kernel from arch/arm64/boot/Image.gz-dtb
Writing Boot Image boot.img.test
Click to expand...
Click to collapse
where did you get boot.img.skip?
i was able to build it but i cant get it to boot
so Image.gz-dtb is the zimage?

boot.img skip i created from the boot.img inside the factory images. i chopped off the first 0x100 bytes to create that file.

gianptune said:
boot.img skip i created from the boot.img inside the factory images. i chopped off the first 0x100 bytes to create that file.
Click to expand...
Click to collapse
can you give me that boot.img
i have been using the boot.img from Chainfire
and i cant boot it

https://developers.google.com/android/nexus/images#volantislrx21l

gianptune said:
https://developers.google.com/android/nexus/images#volantislrx21l
Click to expand...
Click to collapse
Does root work for you with that boot.img

There are a few different ways to interpret that question. I have root working 2 different ways. I installed su built from AOSP and I enabled "adb root" in my ramdisk. Both of these is sufficient for running your own code as root, but it is not enough to allow apps to run as root (supersu/superuser apk). You need to modify the init.rc with the 2 lines from chainfire's ramdisk if you want to use his apk.

gianptune said:
There are a few different ways to interpret that question. I have root working 2 different ways. I installed su built from AOSP and I enabled "adb root" in my ramdisk. Both of these is sufficient for running your own code as root, but it is not enough to allow apps to run as root (supersu/superuser apk). You need to modify the init.rc with the 2 lines from chainfire's ramdisk if you want to use his apk.
Click to expand...
Click to collapse
O ok
Ty for all your help
I found out why it did not boot
it needs SELinux to be on
Do you know how to not compile it and still boot

works for me
Code:
[email protected]:/ # setenforce 0
[email protected]:/ # getenforce
Permissive

gianptune said:
boot.img skip i created from the boot.img inside the factory images. i chopped off the first 0x100 bytes to create that file.
Click to expand...
Click to collapse
What do you mean by chopping off 0x100 byte to create the file? chopping off from factory boot.img or else? What tool have you used to do that?
My issue here is that I make some changes to flounder kernel and want to boot this one instead of the factory one, have you ever done that or know how to do this? I know how to do this for earlier Android version, but not 5.0, things have changed quite a bit.

petermp said:
What do you mean by chopping off 0x100 byte to create the file? chopping off from factory boot.img or else? What tool have you used to do that?
My issue here is that I make some changes to flounder kernel and want to boot this one instead of the factory one, have you ever done that or know how to do this? I know how to do this for earlier Android version, but not 5.0, things have changed quite a bit.
Click to expand...
Click to collapse
i used something like dd if=boot.img of=boot.img.skip bs=1 skip=256

gianptune said:
i used something like dd if=boot.img of=boot.img.skip bs=1 skip=256
Click to expand...
Click to collapse
Thank you, my friend. I am able to boot my own kernel now.
Dont know who you are, but you are extremely helpful on this blog.
Appreciate your info again.

Drivers
Guys where you get drivers for Nexus 9 from? There are not in the https://developers.google.com/android/nexus/drivers page

finikorg said:
Guys where you get drivers for Nexus 9 from? There are not in the https://developers.google.com/android/nexus/drivers page
Click to expand...
Click to collapse
What do you mean by
Drivers?

USBhost said:
What do you mean by
Drivers?
Click to expand...
Click to collapse
I mean binary firmware in the page I mentioned above.

finikorg said:
I mean binary firmware in the page I mentioned above.
Click to expand...
Click to collapse
O ok i get you now
I looked for our nexus 9
And nothing
And i have no idea what those binary files are for
Arnt they in the kernel code?

Related

Howto root tf300 jelly bean

I think I've found a way to root tf300. I'm sorry but it does require unlook. It works for me.
Short story: update asus blob with su.
Warning: Do not update to jelly bean from official asus updates unless you want to lost the option to restore. Set up nvflash first!
Warning #2: Do not unlock! I have to find a knew way.
For those who have made the same mistake as I (installing jelly bean) here is a guide to root.
Requirements: Windows with fastboot / Linux if you can run fastboot and a lot of time
Tools (I haven't found an official qemu.exe and it's tricky to compile that):
-blobunpack and blobupdate
-qemu emulator with a minimalistic linux (bzimage initramfs) where android su is on /root
-fastboot
-official asus firmware blob (asus website)
For windows users:
Unzip all to a directory. Unzip blob twice.
Get blob.APP:
Code:
blobunpack blob APP
Now start Linux:
Code:
qemu -kernel bzImage -initrd initramfs -hda blob.APP
After booting you are in a Linux shell. Run:
Code:
mkdir /mnt
mount -t ext4 /dev/sda /mnt
cp su /mnt/xbin/su
umount /mnt
Close it and run:
Code:
blobupdate blob APP blob.APP
You can transfer the file in fastboot mode:
Code:
fastboot flash system blob
For Linux these steps are much simplier and you don't need qemu:
Code:
$ make
$ chmod 6755 su
$ ./blobunpack blob APP
$ mkdir mnt
$ su
# mount -t ext4 blob.APP mnt
# cp su mnt/xbin/su
# umount mnt
# exit
$ rmdir mnt
$ ./blobupdate blob APP blob.APP
You can download su binary from http://forum.xda-developers.com/showthread.php?t=1704209 and http://db.tt/FBUNeVmo . I don't know if you can run fastboot.
Does the tf300 require a unlocked bootloader?
xSvenHD said:
Does the tf300 require a unlocked bootloader?
Click to expand...
Click to collapse
please read the 1st line of the thread.
Sorry i was reading it fast.
Is this brick free?
Sorry for my bad English Sent From My TF300
Can anyone confirm this?
And does it stay root or do you need an app for su?
grlks said:
Code:
qemu -kernel bzImage -initrd initrd -hda blob.APP
Click to expand...
Click to collapse
This command is not working.Qemu doesn`t start.Maybe wrong linux kernel or some parameters.
UPD:initrd is missing.Only initramfs.
UPD2:Seems like included Linux is corrupted.Can`t get it to work.
UPD3:The whole instruction is a trolling.I can`t mount blob.APP.And string "-hda blob.APP" doesn`t have any sense,because u need a bootable linux image to run qemu,otherwise it will show only bios.And when i `ve booted,i can`t mount blob.app.
OP is a ******.Need another instructions.I have lost 4 hours.
grlks said:
Code:
blobunpack blob APP
Know start Linux:
Code:
qemu -kernel bzImage -initrd initrd -hda blob.APP
After booting you are in a Linux shell. Run:
Code:
mount -t ext4 /dev/sda /mnt
cp su /mnt/xbin/su
poweroff
If it has shuted down update blob:
Code:
blobupdate blob APP blob.APP
You can transfer the file in fastboot mode:
Code:
fastboot flash system blob
Click to expand...
Click to collapse
What I have to do to get updated blob file (I don't have with me the Asus' wire to test the fastoot (last command)) :
Code:
qemu -kernel bzImage -initrd [COLOR="Red"]initramfs[/COLOR] -hda blob.APP
After booting you are in a Linux shell. Run:
Code:
[COLOR="Red"]mkdir /mnt
[/COLOR]mount -t ext4 /dev/sda /mnt
cp [COLOR="Red"]/[/COLOR]su /mnt/xbin/su
[COLOR="Red"]umount /mnt[/COLOR]
poweroff
The poweroff command above didn't work, I kill the quemu proccess after umount /mnt .
If it has shuted down update blob:
Code:
blobupdate blob APP blob.APP
I will try fastboot this afternoon or tomorow.
xSvenHD said:
Sorry i was reading it fast.
Is this brick free?
Click to expand...
Click to collapse
If you downloaded the correct blob file from asus.
It does not require extra tools on android (it will replace any custom recovery with the original SOS / recovery partition).
MantusRus said:
This command is not working.Qemu doesn`t start.Maybe wrong linux kernel or some parameters.
UPD:initrd is missing.Only initramfs.
UPD2:Seems like included Linux is corrupted.Can`t get it to work.
UPD3:The whole instruction is a trolling.I can`t mount blob.APP.And string "-hda blob.APP" doesn`t have any sense,because u need a bootable linux image to run qemu,otherwise it will show only bios.And when i `ve booted,i can`t mount blob.app.
OP is a ******.Need another instructions.I have lost 4 hours.
Click to expand...
Click to collapse
The bootable Linux image is bzImage and initramfs. Sorry for wasting your time.
grlks said:
I think I've found a way to root tf300. There is no unlook required. It works for me.
Short story: update asus blob with su.
Warning: Do not update to jelly bean from official asus updates unless you want to lost the option to restore. Set up nvflash first!
For those who have made the same mistake as I (installing jelly bean) here is a guide to root.
Requirements: Windows with fastboot / Linux if you can run fastboot and a lot of time
Tools (I haven't found an official qemu.exe and it's tricky to compile that):
-blobunpack and blobupdate
-qemu emulator with a minimalistic linux (bzimage initramfs) where android su is on /root
-fastboot
-official asus firmware blob (asus website)
Unzip all to a directory. Unzip blob twice.
Get blob.APP:
Code:
blobunpack blob APP
Now start Linux:
Code:
qemu -kernel bzImage -initrd initramfs -hda blob.APP
After booting you are in a Linux shell. Run:
Code:
mkdir /mnt
mount -t ext4 /dev/sda /mnt
cp su /mnt/xbin/su
umount /mnt
Close it and run:
Code:
blobupdate blob APP blob.APP
You can transfer the file in fastboot mode:
Code:
fastboot flash system blob
For Linux these steps are much simplier:
Code:
$ chmod 6755 su
$ ./blobunpack blob APP
$ mkdir mnt
$ su
# mount -t ext4 blob.APP mnt
# cp su mnt/xbin/su
# umount mnt
$ rmdir mnt
$ ./blobupdate blob APP blob.APP
You can download su binary from http://forum.xda-developers.com/showthread.php?t=1704209 and http://db.tt/FBUNeVmo . I don't know if you can run fastboot.
Click to expand...
Click to collapse
Hello!
Which qemu are you using?
I installed the package from the official fedora repos, I don't have "qemu" alone and "qemu-arm" was not exactly working with the arguments you gave us..
Thanks for the help
edit:
Here an exception thrown when trying to run qemu-system-arm,
I don't know if the problem comes from a wrong usage of the command or if something went wron in the blob unpack...
qemu-system-arm -kernel bzImage -initrd initramfs -hda blob.APP
qemu: fatal: Trying to execute code outside RAM or ROM at 0xff91c756
R00=00000000 R01=00000113 R02=00000100 R03=00000000
R05=00000000 R06=00000000 R07=00000000
R08=00000000 R09=00000000 R10=00000000 R11=00000000
R12=00000000 R13=00000000 R14=00010010 R15=ff91c756
PSR=400001f3 -Z-- T svc32
Click to expand...
Click to collapse
aachour said:
Hello!
Which qemu are you using?
I installed the package from the official fedora repos, I don't have "qemu" alone and "qemu-arm" was not exactly working with the arguments you gave us..
Thanks for the help
Click to expand...
Click to collapse
qemu-system-i386 but for linux see the buttom. Linux can mount blob.APP if it has loopback support. You just need qemu for windows.
grlks said:
qemu-system-i386 but for linux see the buttom. Linux can mount blob.APP if it has loopback support. You just need qemu for windows.
Click to expand...
Click to collapse
Hej!
Thanks a lot
I thought you had to emulate an arm cpu to run the image.
Thanks again!
Any idea how to mount the tablet in linux while in fastboot mode?
I set the rule :
Code:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0b05", MODE="0666", OWNER="aachour"
in /etc/udev/rules.d/51-android.rules
but this doesn't seem to change anyhing, fastboot wait for the device
I've been searching but didn't find any different rule...
thanks!
The most interesting question-how to fastboot it wit the locked bootloader?It`s "waiting for device" for me.
MantusRus said:
The most interesting question-how to fastboot it wit the locked bootloader?It`s "waiting for device" for me.
Click to expand...
Click to collapse
You have to install the drivers for tf300.
grlks said:
Code:
fastboot flash system blob
Click to expand...
Click to collapse
Fastboot returns :
Code:
writing 'system'.... failed (remote: (InvalidState))
Apparently due to the locked bootloader.
If someone got an idea ?
RaS_KoR said:
Fastboot returns :
Code:
writing 'system'.... failed (remote: (InvalidState))
Apparently due to the locked bootloader.
If someone got an idea ?
Click to expand...
Click to collapse
Same here.I think it`s a dead end.
Problems with locked bootloader
I was wrong. You can't flash with fastboot on locked bootloaders. I am sorry for all those testing it. I will fix it!
grlks said:
I was wrong. You can't flash with fastboot on locked bootloaders. I am sorry for all those testing it. I will fix it!
Click to expand...
Click to collapse
Yeah, that would be awesome
Thanks for all your efforts!
Does it is possible to re-zip the modified blob into the original Asus's zip and install it with a Sd card ?

[Guide] How to build kernel from source

Build-kernel​
Building Kernel only from Oppo Source​
"Official Oppo Find 5 kernel source":https://github.com/oppo-source/Find5-Kernel-Source
EDIT: the 12025_release_defconfig doesn't work for me (touchscreen doesn't respond). Most likely a change needs to be made here
Code:
446,447c436,437
< CONFIG_TOUCHSCREEN_MELFAS=y
< CONFIG_TOUCHSCREEN_SYNAPTICS_S3202_I2C_RMI=y
---
> CONFIG_TOUCHSCREEN_ATMEL_MXT=y
> CONFIG_TOUCHSCREEN_CYTTSP_I2C_QC=y
Check out the source code
Code:
git clone git://github.com/oppo-source/Find5-Kernel-Source.git
Using +12025_debug_defconfig+ as config. You can use +12025_release_defconfig+ , with some modifications to the source to make it work properly
Code:
cd Find5-Kernel-Source
make ARCH=arm clean
make ARCH=arm 12025_debug_defconfig
edit include/config/kernel.release
if you want to modify the kernel version numbering
Build
Code:
make -j4 ARCH=arm CROSS_COMPILE=arm-eabi-
or use this following (uses as many cores as your computer has
Code:
make -j$(grep -c ^processor /proc/cpuinfo) ARCH=arm CROSS_COMPILE=arm-eabi-
\n if you want to use the +12025_release_defconfig+, there are some config problems. I have fixed them in my github
My github (use the branch [*]config-fixes): https://github.com/ngvincent/android-kernel-oppo-find5
The end, you'll get two files (Image and zImage) inside arch/arm/boot
Image = full kernel image, zImage = compressed version
*_The boot partition has ~10MB of space(see bottom of page for details). Make sure your kernel+ramdisk doesn't exceed this_*
Make boot.img file (need to add ramdisk)​
Copy the ramdisk from existing device or ROM. "Here":https://git.ngvincent.com/attachments/download/5/ramdisk.gz is one I extracted from the X909EN_13_130307 rom
Extracting kernel from device​
Code:
adb shell
su
dd if=/dev/block/mmcblk0p18 of=/sdcard/boot.img
exit
adb pull /sdcard/boot.img
Extracting from boot.img​
Code:
abootimg -x boot.img
Making boot.img​
Copy the stuff below into a file called bootimg.cfg (gives the configuration for abootimg to create the img properly)
Code:
bootsize =
pagesize = 0x800
kerneladdr = 0x80208000
ramdiskaddr = 0x82200000
secondaddr = 0x81100000
tagsaddr = 0x80200100
name =
cmdline = console=ttyHSL0,115200,n8 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x3F ehci-hcd.park=3
Code:
abootimg --create bootimage.img -f bootimg.cfg -k zImage -r ramdisk.gz
Flash kernel onto device​
You'll need to use fastboot to do it. I need to sudo as root for fastboot to work properly
Code:
adb reboot bootloader
sudo -s
fastboot devices
fastboot flash boot bootimage.img
fastboot reboot
verify​
Code:
adb shell
cat /proc/version
Linux version 3.4.0-perf-g5d91181 ([email protected]) (gcc version 4.4.3 (GCC) ) [*]1 SMP PREEMPT Sat Mar 16 13:29:19 EDT 2013
partition space on the device​
Code:
adb shell
cat /proc/partitions
Code:
179 18 10240 mmcblk0p18
Code:
[email protected]:/dev/block/platform/msm_sdcc.1/by-name $ ls -la
lrwxrwxrwx root root 1970-01-16 12:58 DDR -> /dev/block/mmcblk0p15
lrwxrwxrwx root root 1970-01-16 12:58 aboot -> /dev/block/mmcblk0p17
lrwxrwxrwx root root 1970-01-16 12:58 boot -> /dev/block/mmcblk0p18
Looks like there's plenty of space for the kernel/boot.img - 10240 kilobytes
Thanks for this. While this is way beyond my skill level, I'm glad the info is available. I'm slowing scratching the surface.. just recently learned how to build Nightlies! Thanks
Sent from my X909 using Tapatalk 2
Coreym said:
just recently learned how to build Nightlies! Thanks
Sent from my X909 using Tapatalk 2
Click to expand...
Click to collapse
are you planning on making nightlies for the oppo ?
CoopZor said:
are you planning on making nightlies for the oppo ?
Click to expand...
Click to collapse
I think kAmMa is working on CM right now? So hopefully we will have the CM Rom to install on the Find 5 in the near future. I know he said that he almost had it complete but was having problems with the drivers for the display and needed the drivers from the source code. Now that the source code has been released we might see something good soon. I don't know if his CM will be the official CM release though. We do need an official CM for the Find 5 though.
Personally, I would like to see Paranoid Android 3+ on the Find 5 as its my favorite rom, and it would be amazing on the Find 5. I use it as my daily on my Nexus 4 and 7 and both run great!
This is out of my league also, I wish I could build some good kernels and Roms. I will beta test Roms and Kernels if anyone needs me too though.
Coreym said:
Thanks for this. While this is way beyond my skill level, I'm glad the info is available. I'm slowing scratching the surface.. just recently learned how to build Nightlies! Thanks
Sent from my X909 using Tapatalk 2
Click to expand...
Click to collapse
once you get the hang of linux build tools, the next part is rather easy
I'm porting over the changes that faux123 made in his kernel for the Nexus 4 (same Qualcomm S4Pro APQ8064 processor+SoC)...
finished reading his mods for voltage control, i'll probably slicing in the code tomorrow...
I'm not touching CM10 (or AOKP/Paranoid...) porting yet... had some experience with kernel development a few years ago, but not for android porting...
error when run Command
I got error when run Command : make ARCH=arm clean , how can I fix it?
PHP:
[email protected]:~/aosp/kernel/Find5-4.2-kernel-source-master$ make ARCH=arm clean
scripts/Makefile.clean:17: /home/war/aosp/kernel/Find5-4.2-kernel-source-master/drivers/networkpmsmodule/Makefile: No such file or directory
make[2]: *** No rule to make target `/home/war/aosp/kernel/Find5-4.2-kernel-source-master/drivers/networkpmsmodule/Makefile'. Stop.
make[1]: *** [drivers/networkpmsmodule] Error 2
make: *** [_clean_drivers] Error 2
#### make failed to build some targets (1 seconds) ####

[Guide] How to build kernel from source on ubuntu 13.10...

Here are the steps to build your own kernel from source. This guide is showing you how to build your first the stock kernel on your own..... It is kick start for making things on your own way....
This guide applies to i9082/i9082L and general devices also.:laugh:
This guide assumes you have basic knowledge of linux and linux system configuration.
Prerequisites
1. Ubuntu 13.10
2. patience...lots and lots of patience.
Click to expand...
Click to collapse
Here starts the fun:-
1. Installing ubuntu 13.10.
This can be done in 3 ways and I am not gonna cover it all.
- along with windows ,i.e dual boot
- in virtualbox within windows
- as a windows application installation with "wubi" installer
For starting user i think second option, i.e installing in virtualbox is best.
here's starting tutorials
http://www.youtube.com/watch?v=tDDRFiwHujg
NOTE - you should have atleast 100 Gb partion for virtualbox.
Click to expand...
Click to collapse
2. Getting the kernel source.
Download source from http://opensource.samsung.com/
Type i9082 in search box and download "GT-I9082_SEA_JB_Opensource_Update1.zip"
After download unzip the source into new folder in home directory.
Type in terminal from you kernel directory.
Code:
unzip GT-I9082_SEA_JB_Opensource_Update1.zip
Then extract tar.
Code:
mkdir kernel
tar xzf kernel.tar.gz -C kernel
Click to expand...
Click to collapse
3. Setting up building environment.
Copied from http://soupdawg.wordpress.com/
All credits goes to
mysteriously inconspicuous
Click to expand...
Click to collapse
Initializing a fresh Android Build Environment in Ubuntu 13.10 sucks, right? The instructions at the AOSP page are outdated and inaccurate. Near as I can tell, they try to have you install 2 JDKs, the first one not even being the correct link for Saucy Salamander, and the second being OpenJDK. Which might work. But I dunno about all that, I’d rather have Oracle’s official stamp when it comes to building for Android.
Currently most of the guides are up to 12.04 LTS, which is fine and dandy, but being on the cutting edge is nice too.
This guide applies to all variations of Ubuntu 13.10 Saucy Salamander 64 bit. Do not use the 32 Bit version. Also, PAY CLOSE ATTENTION when to use “sudo” and when to not. It can make things funky if you do something as root that you shouldn’t.
Much thanks goes out to Google, ProTekk, Canonical, and everyone else that I read a random paragraph here and snippet there.
First, let’s set up the correct JDK.
Many of you probably have some kind of wrong Java installed unless you’re starting with a fresh Ubuntu base, and even then maybe.
Let’s get rid of that. Copy and paste this into a Terminal window:
Code:
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
Follow the instructions to remove OpenJDK.
If you must keep it, it’s possible. But I’m not going to tell you how to do it here. I don’t want any chance of confusion or mistake.
Now copy and paste the following into the Terminal:
Code:
sudo add-apt-repository ppa:webupd8team/java
This will add the correct PPA to your system for updated builds of Java 6 JDK that are compatible with 13.10.
No more unrecognized Java version errors! And it will update automatically with the rest of your system.
Next, we actually need to install the package. More copy-paste:
Code:
sudo apt-get update && sudo apt-get install oracle-java6-installer
Follow the on-screen instructions. You have to Accept the Licensing Agreement to complete the install. Hopefully no human centipede clauses.
Let’s make sure the correct version of Java is activated, run the following Terminal command:
Code:
java -version
You should see something like the following:
Code:
java version “1.6.0_45″
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)
Ok, back to a fresh Terminal prompt. Time for installing the guts to build stuff in Ubuntu:
Code:
sudo apt-get install git-core gnupg ccache lzop flex bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5 lib32z1 lib32bz2-1.0 lib32ncurses5-dev x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 lib32z-dev libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc readline-common libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev lib32readline5 lib32readline6 libreadline-dev libreadline6-dev:i386 libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.8-dev python
When that is done installing, run the following command in your Terminal window:
Code:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
That’s it on the package side of things.
You guessed it, time for more Terminal. This really is the easiest way, seriously. And it’s totally worth it when you’re basking in the glory of a bunch of people on XDA.
The binary for a program called “repo” will let you talk to git servers and download all that precious source code. That second part after the && allows it to be executable:
Code:
mkdir ~/bin && curl http://commondatastorage.googleapis.com/git-repo-downloads/repo ~/bin/repo && chmod a+x ~/bin/repo
Use your favorite text editor to open ~/.bashrc
I like nano:
Code:
sudo nano ~/.bashrc
At the very bottom, add the following line:
Code:
export PATH=~/bin:$PATH
Save it. In nano that would be Ctrl-O and then Enter. Then Ctrl-X to exit back to a prompt. Restart bash:
Code:
source ~/.bashrc
That should be everything. Now you’re ready to build Android the right way. Luck!
4. Installing toolchain
Anyway, first order of the day is to get the official arm toolchain, which I'm going to install in /usr/local/share/ since I plan to keep using it for some time:
Code:
# cd /usr/local/share/
# git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
Cloning into 'arm-eabi-4.6'...
remote: Sending approximately 124.64 MiB ...
remote: Counting objects: 33, done
remote: Finding sources: 100% (33/33)
remote: Total 580 (delta 146), reused 580 (delta 146)
Receiving objects: 100% (580/580), 124.64 MiB | 715 KiB/s, done.
Resolving deltas: 100% (146/146), done.
Now, let's add that arm toolchain to our path:
Code:
# export PATH=$PATH:/usr/local/share/arm-eabi-4.6/bin
# arm-eabi-gcc --version
arm-eabi-gcc (GCC) 4.6.x-google 20120106 (prerelease)
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5. Compiling kernel
Now we need to set the variables that will tell the OS that we're cross compiling (again, something that you may want to do in your .profile using something like alias cross='export ARCH="arm";export SUBARCH="arm";export CROSS_COMPILE="arm-eabi-"'):
Code:
# export ARCH=arm
# export SUBARCH=arm
# export CROSS_COMPILE=arm-eabi-
Finally, we can initialize our default config and get going:
Prepare source for new compilation
Code:
make bcm28155_capri_ss_baffin_rev05_defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
arch/arm/mach-capri/custom_boards/Kconfig:19:warning: defaults for choice values not supported
arch/arm/mach-capri/custom_boards/Kconfig:25:warning: defaults for choice values not supported
arch/arm/mach-capri/custom_boards/Kconfig:31:warning: defaults for choice values not supported
arch/arm/mach-capri/custom_boards/Kconfig:37:warning: defaults for choice values not supported
#
# configuration written to .config
#
Code:
# make -j*
(...)
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
* stands for number of cpus your computer has.like my has 4 so I will make it j4
* bcm28155_capri_ss_baffin_rev05_defconfig is stock config, for cm11 you will have diffrent config and for some cutom kernel something else.
6. Crafting an Android boot.img
The format of this Android boot images can be found in the bootimg.h of the mkbootimg tool from the android platform/system/core source. I guess we have to start somewhere, and we'll need to produce our own images, so let's start by fetching and recompiling mkbootimg then.
Code:
# git clone https://android.googlesource.com/platform/system/core bootimg-tools
Cloning into 'bootimg-tools'...
remote: Counting objects: 92, done
remote: Finding sources: 100% (92/92)
remote: Total 19302 (delta 11674), reused 19302 (delta 11674)
Receiving objects: 100% (19302/19302), 5.87 MiB | 655 KiB/s, done.
Resolving deltas: 100% (11674/11674), done.
# cd bootimg-tools/libmincrypt/
# gcc -c *.c -I../include
# ar rcs libmincrypt.a *.o
# cd ../mkbootimg
# gcc mkbootimg.c -o mkbootimg -I../include ../libmincrypt/libmincrypt.a
mkbootimg.c: In function 'main':
mkbootimg.c:245:9: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
# cp mkbootimg /usr/local/bin/
# cd ../cpio
# gcc mkbootfs.c -o mkbootfs -I../include
# cp mkbootfs /usr/local/bin/
New improved bootimg-tools can be found at.
Code:
# wget https://github.com/pbatard/bootimg-tools/archive/master.zip
lets compile from there
Code:
# cd /usr/src/android/bootimg-tools/mkbootimg/
# wget https://raw.github.com/pbatard/bootimg-tools/master/mkbootimg/unmkbootimg.c
# gcc -o unmkbootimg unmkbootimg.c
# cp unmkbootimg /usr/local/bin/
Now at last, you have the minimum of unmkbootimg, mkbootimg and mkbootfs installed in your path, and we can get going with our testing of the kernel.
I'll assume that you have a /usr/src/android/boot where you copied your boot.img, so let's get going....
Code:
# cd /usr/src/android/boot/
# ls
boot.img
# unmkbootimg -i boot.img
kernel written to 'kernel' (4738320 bytes)
ramdisk written to 'ramdisk.cpio.gz' (516287 bytes)
To rebuild this boot image, you can use the command:
mkbootimg --base 0 --pagesize 4096 --kernel_offset 0xa2008000 --ramdisk_offset 0xa3000000 --second_offset 0xa2f00000 --tags_offset 0xa2000100 --cmdline 'console=ttyS0,115200n8 [email protected] androidboot.console=ttyS0 vc-cma-mem=0/[email protected]' --kernel kernel --ramdisk ramdisk.cpio.gz -o boot.img
Code:
# ls
boot.img kernel ramdisk.cpio.gz
As an aside that you don't need to run, but since it should be elementary that this is the basic functionality you want from a proper boot image unpack tool, we can confirm that the data provided by the unpack tool will produce a boot.img that is binary identical to the original one-
Code:
# mkbootimg --base 0 --pagesize 4096 --kernel_offset 0xa2008000 --ramdisk_offset 0xa3000000 --second_offset 0xa2f00000 --tags_offset 0xa2000100 --cmdline 'console=ttyS0,115200n8 [email protected] androidboot.console=ttyS0 vc-cma-mem=0/[email protected]' --kernel kernel --ramdisk ramdisk.cpio.gz -o myboot.img
Code:
# ls
boot.img kernel myboot.img ramdisk.cpio.gz
# cmp -l boot.img myboot.img
#
Moving on. Since we just want to test a kernel, we shouldn't really have to touch the cpio image (ramdisk), but then again, my goal here is to give you as many pointers as I can, so we might as well see how we craft our own ramdisk while we're at it. What we're going to do here, as an academical exercise, is add an it_works file at the root of the filesystem, which we'll look for after we booted, to confirm that can use our modified stuff all the way through.
Code:
# mkdir ramdisk
# cd ramdisk
# gunzip -c ../ramdisk.cpio.gz | cpio -iu
1841 blocks
# ls
charger init.superuser.rc
data init.trace.rc
default.prop init.usb.rc
dev lpm.rc
file_contexts proc
fstab.capri_ss_baffin property_contexts
fstab.goldfish res
init sbin
init.bcm281x5.usb.rc seapp_contexts
init.capri_ss_baffin.rc sepolicy
init.cm.rc sys
init.environ.rc system
init.goldfish.rc ueventd.capri_ss_baffin.rc
init.log.rc ueventd.goldfish.rc
init.rc ueventd.rc
init.recovery.capri_ss_baffin.rc
# touch it-works
# ls
charger init.superuser.rc
data init.trace.rc
default.prop init.usb.rc
dev it-works
file_contexts lpm.rc
fstab.capri_ss_baffin proc
fstab.goldfish property_contexts
init res
init.bcm281x5.usb.rc sbin
init.capri_ss_baffin.rc seapp_contexts
init.cm.rc sepolicy
init.environ.rc sys
init.goldfish.rc system
init.log.rc ueventd.capri_ss_baffin.rc
init.rc ueventd.goldfish.rc
init.recovery.capri_ss_baffin.rc ueventd.rc
# find . | cpio -o -H newc | gzip > ../myramdisk.cpio.gz
1850 blocks
# cd ..
# ls
boot.img kernel myramdisk.cpio.gz ramdisk/ ramdisk.cpio.gz
We're finally set for the last part, where we copy the kernel we compiled earlier, and invoke mkbootimg with the set of parameters we got from unmkbootimg, and use both our modified kernel and cpio image:
Code:
# cp ~/kernel/arch/arm/boot/zImage .
# ls
boot.img kernel myramdisk.cpio.gz ramdisk/ ramdisk.cpio.gz zImage*
# mkbootimg --base 0 --pagesize 4096 --kernel_offset 0xa2008000 --ramdisk_offset 0xa3000000 --second_offset 0xa2f00000 --tags_offset 0xa2000100 --cmdline 'console=ttyS0,115200n8 [email protected] androidboot.console=ttyS0 vc-cma-mem=0/[email protected]' --kernel zImage --ramdisk myramdisk.cpio.gz -o myboot.img
# ls
boot.img kernel myboot.img myramdisk.cpio.gz ramdisk/ ramdisk.cpio.gz zImage*
7. testing new boot.img
Finally, a custom boot.img we can test. Let's press on by copying this myboot.img file into the directory we have adb and fastboot installed and run the following ser of commands which, unlike what many other guides seem to advise (what the heck, guys?), is NOT going to flash the kernel/boot.img but simply run it from memory. This means that, in case there's any mishap, you can simply power the "grand" off and you'll be good as new:
Code:
# ./adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
# ./adb reboot bootloader
# ./fastboot boot myboot.img
downloading 'boot.img'...
OKAY [ 0.223s]
booting...
OKAY [ 0.023s]
finished. total time: 0.246s
All in all, this looks fairly good. And a quick look to the root filesystem (through adb shell or through ssh) will also confirm that our it_works file is there, so we can also add whatever we want on the initial filesystem. Neat!
From there on, you can go ahead and tweak your kernel and initial filesystem exactly as you see fit. And after you have tested that everything works as it should, you can go ahead and flash the boot partition with your shiny custom boot.img, using:
ODIN or cwm flashable zip
This is last part...
8. making flashable files
Tar your boot.img file so it can be flashed with Odin.
tar cvf mynewkernel.tar boot.img
md5sum -t mynewkernel.tar >> mynewkernel.tar
mv mynewkernel.tar mynewkernel.tar.md5
Click to expand...
Click to collapse
Note:- myboot.img is renamed to boot.img
9.Flashing kernel through ODIN
Flash mynewkernel.tar.md5 with odin under PDA. Please follow the flashing guides found in other posts.
Hope i help few of you...
Please HIT thanks if you find this helpful.:laugh:
Thankyou k2wl for this tutorial and pls also tell how to get pawitp source code for rom and kernel from his repositries : https://github.com/pawitp/android_device_samsung_i9082
https://github.com/pawitp/android_kernel_samsung_i9082
Repo tool is not working because there is no android manifest file in his repository
Pls help me
mr.phantom said:
Thankyou k2wl for this tutorial and pls also tell how to get pawitp source code for rom and kernel from his repositries : https://github.com/pawitp/android_device_samsung_i9082
https://github.com/pawitp/android_kernel_samsung_i9082
Repo tool is not working because there is no android manifest file in his repository
Pls help me
Click to expand...
Click to collapse
run the following in terminal
$git clone https://github.com/pawitp/android_device_samsung_i9082.git
and
$ git clone https://github.com/pawitp/android_kernel_samsung_i9082.git
k2wl said:
run the following in terminal
$git clone https://github.com/pawitp/android_device_samsung_i9082.git
and
$ git clone https://github.com/pawitp/android_kernel_samsung_i9082.git
Click to expand...
Click to collapse
well i already have done that cloning for cm11 but it had only downloaded files around 200KB and i dont think so that cm11 source code would be that much small
hi
mr.phantom said:
well i already have done that cloning for cm11 but it had only downloaded files around 200KB and i dont think so that cm11 source code would be that much small
Click to expand...
Click to collapse
That's not cm11 source. For that u need another tutorial.
Meanwhile try wiki.CyanogenMod.org
It has instructions for Building for new device
Code:
unmkbootimg.c:25:21: fatal error: bootimg.h: No such file or directory
#include "bootimg.h"
^
compilation terminated.
Getting this while compiling unmkbootimg
i actually am surprises that there are many unofficial CMs in high ends with HALO IN IT.. though our developers try to make rom as close to real one as possible...what if the users want halo integration (as developers only know it :/)
help..
akiratoriyama said:
Code:
unmkbootimg.c:25:21: fatal error: bootimg.h: No such file or directory
#include "bootimg.h"
^
compilation terminated.
Getting this while compiling unmkbootimg
Click to expand...
Click to collapse
try compiling as a root.
k2wl said:
try compiling as a root.
Click to expand...
Click to collapse
How to convert zImage to boot.img
Or do I have to directly copy it ?
Sent from my GT-I9082 using Tapatalk
raghavsharmaxda said:
i actually am surprises that there are many unofficial CMs in high ends with HALO IN IT.. though our developers try to make rom as close to real one as possible...what if the users want halo integration (as developers only know it :/)
help..
Click to expand...
Click to collapse
k2wl said:
try compiling as a root.
Click to expand...
Click to collapse
akiratoriyama said:
How to convert zImage to boot.img
Or do I have to directly copy it ?
Sent from my GT-I9082 using Tapatalk
Click to expand...
Click to collapse
read the last section of post, it covers the conversion of zimage to boot.img...
seems you compiled successfully.
congrats.:victory:
But what about boot.img ?
We need a boot.img in /android/boot ?
Now at last, you have the minimum of unmkbootimg, mkbootimg and mkbootfs installed in your path, and we can get going with our testing of the kernel.
I'll assume that you have a /usr/src/android/boot where you copied your boot.img, so let's get going....
Click to expand...
Click to collapse
Hi @k2wl.For the part "make -j8",if you don't mind putting a sign for others to only compile at the amount of their CPU have otherwise it will caused some error for others who are compiling
1 CPU= make -j1 with least error
Sent from my iPad using Tapatalk
Really nice guide especially about packing the initramfs with the zimage to make boot.img.
Sent from my GT-I9082 using Tapatalk
akiratoriyama said:
But what about boot.img ?
We need a boot.img in /android/boot ?
Click to expand...
Click to collapse
take one from my stock kernel zip....
Techix18 said:
Hi @k2wl.For the part "make -j8",if you don't mind putting a sign for others to only compile at the amount of their CPU have otherwise it will caused some error for others who are compiling
1 CPU= make -j1 with least error
Sent from my iPad using Tapatalk
Click to expand...
Click to collapse
thanks for suggestion.
skullface said:
Really nice guide especially about packing the initramfs with the zimage to make boot.img.
Sent from my GT-I9082 using Tapatalk
Click to expand...
Click to collapse
thanks....will modify more..
k2wl said:
That's not cm11 source. For that u need another tutorial.
Meanwhile try wiki.CyanogenMod.org
It has instructions for Building for new device
Click to expand...
Click to collapse
ok will check it out and will you make a guide for that also??
mr.phantom said:
ok will check it out and will you make a guide for that also??
Click to expand...
Click to collapse
if people wanted it, will make cm11 compilation from source tutorial for it.
Thanks to ya k2wl
{
"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"
}
Sent from my GT-I9082 using Tapatalk
happy developing.....glad i helped you...
keep trying for learning new features...
k2wl said:
if people wanted it, will make cm11 compilation from source tutorial for it.
Click to expand...
Click to collapse
Pls k2wl make a new tutorial which include cm11 compilation for grand from source and its kernel also
Hey @k2wl
Just wanted to say thank you for this comprehensive guide. Very detailed.
I never had any interest in tweaking a kernel. I am more of a java guy. But after reading your guide, I thought, why not?!
So I started working on it. Now I have a fully functional kernel compiled separately from the ROMs that I compile.
I even named it. Nebula Kernel.
Learning alot about kernels since I started working on it. As I am tweaking nebula for myself and i'll use this kernel as my daily driver so i'll add tweaks and governors according to me, the ones which I'll use. I like keeping things light and simple! I'll use your github for reference and help. If I face any problems, I'll ask you.
Thank you for the guide!

[tool] ANDROID_IMG_REPACK_TOOLS

[tool] ANDROID_IMG_REPACK_TOOLS
&
Android_ROM_IMG_Repacker​​
android_img_repack_tools is a kit utilites for unpack/repack android ext4 and boot images in LINUX & WINDOWS
includes binaries:
mkbootfs
simg2simg
make_ext4fs
make_ext4fs_def
mkbootimg
ext2simg
simg2img
img2simg
sgs4ext4fs - Chainfire's tool
unpackbootimg - CyanogenMod tool
mkbootimg_tools - xiaolu
Android_ROM_IMG_Repacker
sources used:
https://android.googlesource.com
https://github.com/CyanogenMod/android_system_core.git
https://github.com/Chainfire/sgs4ext4fs
how to make:
Preparation OS:
Code:
sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind libreadline6-dev gcc-multilib g++-multilib libc6-dev x11proto-core-dev libx11-dev libz-dev gawk texinfo automake libtool cvs libsdl-dev
Dowload repo:
Code:
git clone https://github.com/ASdev/android_img_repack_tools
Choose branch, for example:
Code:
cd android_img_repack_tools
git checkout android-4.4.4_r2.0.1
Building tools:
Code:
chmod +x configure
./configure
will download source from android git repositories
Code:
make
will compille binaries: mkbootfs simg2simg make_ext4fs mkbootimg sgs4ext4fs unpackbootimg ext2simg img2simg simg2img
Code:
make clean
will remove binaries
Code:
make clear
wiil remove sources
credits:
android.googlesource
Chainfire
CyanogenMod
go to the repository
Already have a branch:
android-2.3.7
android-4.0.4
android-4.1.1
android-4.1.2
android-4.2.2
android-4.3
android-4.4.2
android-4.4.3
android-4.4.4
android-5.0.0
android-5.0.2
android-5.1.0
android-5.1.1
android-6.0.0
android-6.0.1
Usage:
Code:
## Converting sparse flashing system.img from flashing android sparse img to ext4 img
$ simg2img system.img system.raw.img
## or all parts of sparse img
$ simg2img system.img* system.raw.img
## Mounting ext4 img for edit
$ mkdir system_mnt
$ mount -t ext4 -o loop system.raw.img system_mnt
Code:
## Creating new android sparse img for flashing (android 2.3.6-4.2)
$ mkuserimg.sh -s system_mnt system_new.img ext4 ./system [size partition MB for example 1024M]
## or
$ make_ext4fs -s -l 1024M system_new.img system_mnt
more
$ mkuserimg.sh -s system system.img ext4 /system [size partition MB for example 1024M] file_contexts
Code:
## Converting ext4 img to sparse img for flashing (android 4.3-etc)
$ ext2simg -v system.raw.img system_new.img
Code:
## Changing sparse img header size from 28bit to 32bit (for Samsung Exynos Octa)
$ sgs4ext4fs --bloat system_new.img system_32bit.img
Code:
## Remove Moto extra header... (for Motorola G-series, making after unsparse img)
$ mv system.raw.img system.moto.img
$ dd if=system.moto.img of=system.raw.img ibs=131072 skip=1
ANDROID_IMG_REPACK_TOOLS_CYGWIN WINDOWS​
ANDROID_IMG_REPACK_TOOLS_CYGWIN is a kit utilites for unpack/repack android ext4 and boot images in WINDOWS
mkbootfs.exe
simg2simg.exe
make_ext4fs.exe
mkbootimg.exe
ext2simg.exe
img2simg.exe
simg2img.exe
sgs4ext4fs.exe - Chainfire's tool
unpackbootimg.exe - CyanogenMod tool
Already have a branch:
android-4.1.2
android-5.1.0
android-5.1.1
android-6.0.0
android-6.0.1
Already have a .exe:
WINDOWS REPO
XDA:DevDB Information
android_img_repack_tools, Tool/Utility for the Android General
Contributors
A.S._id
Version Information
Status: Testing
Created 2014-01-06
Last Updated 2016-04-17
Odin3 ROM Editor
Reserved
Android ext4fs ROM editor
Android_ROM_IMG_Repacker
It is automatise for android_img_repack_tools for Linux & Windows CYGWIN
Instructions:
credits:
android.googlesource
@Chainfire
@Chenglu
@xpirt
Added v.2.1
* Configure:
Auto choice OS for compilation android_img_repack_tools
* MOUNT ext4 img:
Auto converting sparse to raw img
Auto find magic sparse img and remove vendor extra header
Auto choice OS for mount or extract raw img
* MAKE_EXT4FS - new img ANDROID permission:
Auto extract 'file_contexts' from recovery.img (if exist)
* EXT2SIMG - raw to sparse
Auto choice chunk header (28/32 bytes)
Added v.2.2
* Fixed some bugs
mod edit
Thank you very much. I'm waiting for you.
[tool] ANDROID_IMG_REPACK_TOOLS - CYGWIN EXE
Android_img_repack_tools - cygwin exe
Thanks you. I got it!
added branches:
android-2.3.7_r1
android-4.0.4_r2.1
android-4.2.2_r1.2
android-4.3_r3.1
android-4.4.2_r1
Some headers missed. I am using Ubintu 12.04 and installed zlib1g-dev for compiling zlib_host. But make_ext4fs don't compiling:
Building make_ext4fs...
extras/ext4_utils/make_ext4fs.c: In function 'build_directory_structure':
extras/ext4_utils/make_ext4fs.c:175:27: error: 'struct stat' has no member named 'st_stat'
extras/ext4_utils/make_ext4fs.c:176:26: error: 'struct stat' has no member named 'st_stat'
extras/ext4_utils/make_ext4fs.c:177:26: error: 'struct stat' has no member named 'st_stat'
make: *** [make_ext4fs] Error 1
MATPOC said:
Some headers missed. I am using Ubintu 12.04 and installed zlib1g-dev for compiling zlib_host. But make_ext4fs don't compiling:
Building make_ext4fs...
extras/ext4_utils/make_ext4fs.c: In function 'build_directory_structure':
extras/ext4_utils/make_ext4fs.c:175:27: error: 'struct stat' has no member named 'st_stat'
extras/ext4_utils/make_ext4fs.c:176:26: error: 'struct stat' has no member named 'st_stat'
extras/ext4_utils/make_ext4fs.c:177:26: error: 'struct stat' has no member named 'st_stat'
make: *** [make_ext4fs] Error 1
Click to expand...
Click to collapse
Well you has two ways:
This http://www.zlib.net/
or
Code:
make clean
make clear
./configure
cd ./zlib/src
./configure
make
sudo make install
cd ../..
make clean
make
A.S._id said:
Well you has two ways:
This http://www.zlib.net/
Click to expand...
Click to collapse
As I said I have compiled zlib_host by installing zlib1g-dev. Compile broken at ext4fs - maybe there are no extra headers for ext4fs, such as for struct stat.
MATPOC said:
As I said I have compiled zlib_host by installing zlib1g-dev. Compile broken at ext4fs - maybe there are no extra headers for ext4fs, such as for struct stat.
Click to expand...
Click to collapse
1. zlib1g-dev - не входит в состав zlib
2. у меня установлена Ubuntu 13.10 amd64 gcc 4.8
поэтому - не могу точно ответить по 12.04
gt.
1. zlib1g-dev - not part of zlib
2. I have installed Ubuntu 13.10 amd64 gcc 4.8
so - I can not exactly answer to 12.04
Click to expand...
Click to collapse
MATPOC said:
As I said I have compiled zlib_host by installing zlib1g-dev. Compile broken at ext4fs - maybe there are no extra headers for ext4fs, such as for struct stat.
Click to expand...
Click to collapse
Assembly must be done on 64 bit OS. Only installing zlib-1.2.8
View attachment zlib-1.2.8.tar.gz
And the following packages
Code:
sudo apt-get update
sudo apt-get install ia32-libs
gcc 4.8 can be set separately
hi sir. may i ask you to update op with more explanation of what can do your tool?
i understood that it unpack and repack boot.img and compile binaries...
and after that i am wondering what more? what for?
i use kernel tool master to unpack and repack boot.img...
what is the diffeence and the purpose of you tools?
thank you...
i know i miss of knowledge so that is why i ask.
desalesouche said:
hi sir. may i ask you to update op with more explanation of what can do your tool?
i understood that it unpack and repack boot.img and compile binaries...
and after that i am wondering what more? what for?
i use kernel tool master to unpack and repack boot.img...
what is the diffeence and the purpose of you tools?
thank you...
i know i miss of knowledge so that is why i ask.
Click to expand...
Click to collapse
Old binary do not work with newer versions of android
alexyuh said:
Old binary do not work with newer versions of android
Click to expand...
Click to collapse
does that tool can take binaries from one kernel to port it to another?
desalesouche said:
does that tool can take binaries from one kernel to port it to another?
Click to expand...
Click to collapse
The way is not into repacking boot image, but different version of android has different parametrs of FS. Example android 4.3 ext4 FS has support SELinux, but 4.1 and older hasn't
A.S._id said:
The way is not into repacking boot image, but different version of android has different parametrs of FS. Example android 4.3 ext4 FS has support SELinux, but 4.1 and older hasn't
Click to expand...
Click to collapse
I still don't get the purpose of these tools. I've been running Gentoo Linux as my primary OS for a dozen years, all the tools I need to compile kernels, create boot images, ramdisks, initrds, extract and manipulate from already created images, are already installed on my system by default. Why would I need these too? Are these supposed to be time-savers? Shortcuts? I still don't understand.
Odysseus1962 said:
I still don't get the purpose of these tools. I've been running Gentoo Linux as my primary OS for a dozen years, all the tools I need to compile kernels, create boot images, ramdisks, initrds, extract and manipulate from already created images, are already installed on my system by default. Why would I need these too? Are these supposed to be time-savers? Shortcuts? I still don't understand.
Click to expand...
Click to collapse
Well, how I can see, you're HTC user, and maybe this utilities isn't you needs, because htc don't use sparse images, and different header block size in self rom. But samsung, sony, asus and different brands using it...
why is this error?
Building mkbootimg...
core/mkbootimg/mkbootimg.c: In function 'main':
core/mkbootimg/mkbootimg.c:245:9: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [mkbootimg] Error 1
Click to expand...
Click to collapse
rogerscrack said:
why is this error?
Click to expand...
Click to collapse
cd zlib/src
make clean
./configure
make
sudo make install
and try again...

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

Categories

Resources