Howto - unpack,change,repack boot.img - Folio 100 General

Hi, for those interested I wrote following steps (ubuntu 10.10 32b):
(based on excellent http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images )
I included compiled tools mkbootfs , mkbootimg and perl scripts unpack-bootimg.pl and repack-bootimg.pl.
Repack-bootimg.pl is edited and the needed parameters for our folio are included ([email protected] [email protected] vmalloc=192M video=tegrafb console=ttyS0,115200n8 usbcore.old_scheme_first=1 tegraboot=sdmmc tegrapart=recovery:122000:a00:800,linux:a0e00:1000:800,loader:300:400:800,mbr:700:200:800,system:900:20000:800,cache:20900:80000:800,misc:a0900:400:800,userdata:a1f00:80000:800 boardtype=PR)
1) unpack attachement mytools.tgz into your home, in your home the folder ~/mytools is created:
tar -xzf mytools.tgz
2) copy existing boot.img into ~/mytools (from foliomod update.zip)
3) ./unpack-bootimg.pl boot.img
- old kernel from boot.img is extracted: boot.img-kernel.gz
- content of contained ramdisk is extracted in folder: boot-img.ramdisk
4) copy new compiled kernel (zImage) into ~/mytools (from <source>/kernel/arch/arm/boot/zImage , you have to compile yourself with the weeds2000 quide http://forum.xda-developers.com/showthread.php?p=10331797#post10331797)
5) make all desired changes into ramdisk folder
6) repack new boot.img with a new kernel and changed ramdisk
./repack-bootimg.pl zImage boot.img-ramdisk boot-new.img
7) new boot image is created as boot-new.img
8) if you want just to experiment, you can take any full foliomod dexter's update.zip (1.3d), put the new boot image inside instead original one.
It is possible to remove the other 2 images (recovery and system) if you want just to flash kernel. NOTE! But you have to remove the extrating command for recovery and system from update.zip/meta-inf/com/google/android/update-script.
p.s. Feel free to correct me, if something wrong with the steps. It's my first attempt to compile kernel
I am on FolioMod 1.3d and I use the kernel built without patches from http://tegramid.com/wiki/Main_Page(Full GPL source bundle including framework) for a day without problems. I had to do a full wipe. It's meant for testing, I don't say that kernel from source is better or worse.
Many thanks to Dexter because everything is based on his release, weeds2000 because of his kernel compile quide and tsh who placed the sources on the git and to all who try hacking our folio

thx for this, that 'll be usefull

thanks for the guide.
i have managed to do every thing up to the repack
when i type
Code:
perl repack-bootimg.pl boot.img-kernel.gz boot.img-ramdisk.gz boot.img
i get error
Code:
boot.img-ramdisk.gz Not a directory at repack-bootimg.pl line 13.
even though it is definatly in their. any idea how to get it to work?

You don't have to provide the folder instead of the packed Ramdisk-File!
Because this script is made doing changes in Ramdisk and kernel..
So you can change the scripts inside the boot.img-ramdisk folder and the script will repack and add it to the new boot.img!

permission denied
i have done everything as you said, but while using split_bootimg.pl i got "permission denied". please suggest me what to do?

1. Enable read/write permissions for that file.
2. Tobr, you made a mistake in repack-bootimg.pl. You forgot to add " ./ " before mkbootimg.

Jon2555 said:
1. Enable read/write permissions for that file.
2. Tobr, you made a mistake in repack-bootimg.pl. You forgot to add " ./ " before mkbootimg.
Click to expand...
Click to collapse
The script was downloaded from internet not written by me. And it worked for me just fine. I can not verify now that you are right (probably you are). If it works for you with ./ then either I can put fixed version for download for others (if there is anybody) or it can be here just as a notice for other users, if not working.
I have ./ defined in my path variable in my profile so that i don't need it.

eror when repack
tobr said:
Hi, for those interested I wrote following steps (ubuntu 10.10 32b):
(based on excellent http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images )
I included compiled tools mkbootfs , mkbootimg and perl scripts unpack-bootimg.pl and repack-bootimg.pl.
Repack-bootimg.pl is edited and the needed parameters for our folio are included ([email protected] [email protected] vmalloc=192M video=tegrafb console=ttyS0,115200n8 usbcore.old_scheme_first=1 tegraboot=sdmmc tegrapart=recovery:122000:a00:800,linux:a0e00:1000:800,loader:300:400:800,mbr:700:200:800,system:900:20000:800,cache:20900:80000:800,misc:a0900:400:800,userdata:a1f00:80000:800 boardtype=PR)
1) unpack attachement mytools.tgz into your home, in your home the folder ~/mytools is created:
tar -xzf mytools.tgz
2) copy existing boot.img into ~/mytools (from foliomod update.zip)
3) ./unpack-bootimg.pl boot.img
- old kernel from boot.img is extracted: boot.img-kernel.gz
- content of contained ramdisk is extracted in folder: boot-img.ramdisk
4) copy new compiled kernel (zImage) into ~/mytools (from <source>/kernel/arch/arm/boot/zImage , you have to compile yourself with the weeds2000 quide http://forum.xda-developers.com/showthread.php?p=10331797#post10331797)
5) make all desired changes into ramdisk folder
6) repack new boot.img with a new kernel and changed ramdisk
./repack-bootimg.pl zImage boot.img-ramdisk boot-new.img
7) new boot image is created as boot-new.img
8) if you want just to experiment, you can take any full foliomod dexter's update.zip (1.3d), put the new boot image inside instead original one.
It is possible to remove the other 2 images (recovery and system) if you want just to flash kernel. NOTE! But you have to remove the extrating command for recovery and system from update.zip/meta-inf/com/google/android/update-script.
p.s. Feel free to correct me, if something wrong with the steps. It's my first attempt to compile kernel
I am on FolioMod 1.3d and I use the kernel built without patches from http://tegramid.com/wiki/Main_Page(Full GPL source bundle including framework) for a day without problems. I had to do a full wipe. It's meant for testing, I don't say that kernel from source is better or worse.
Many thanks to Dexter because everything is based on his release, weeds2000 because of his kernel compile quide and tsh who placed the sources on the git and to all who try hacking our folio
Click to expand...
Click to collapse
hi
when do this in ubuntu 11.4
get eorr below
[email protected]:~/Desktop/untitled folder$ ./unpack-bootimg.pl boot.img
kernel written to boot.img-kernel.gz
ramdisk written to boot.img-ramdisk.cpio.gz
463 blocks
extracted ramdisk contents to directory boot.img-ramdisk/
[email protected]:~/Desktop/untitled folder$ ./repack-bootimg.pl zImage boot.img-ramdisk boot-new.img
gzip: folder/ramdisk-repack.cpio.gz: No such file or directory
sh: mkbootimg: not found
No such file or directory at ./repack-bootimg.pl line 21.
[email protected]:~/Desktop/untitled folder
can any one help me?

any tools for windows ?

nguyenhonganh said:
any tools for windows ?
Click to expand...
Click to collapse
Same request!

repack problem
Can somebody tell me is it possible to repack kernel and ramdisk using just hex editor? Without this scripts and unmkbootimg and mkbootimg. What does not work for me cos im using i9100 Philz root. I know how to unpack it and change init.rc and pack it back again. So can i just put my (kernel+ramdisk) ramdisk.cpio.gz file inside mmcblk0p5 in exac location. Will that work out? I dont know what this is doing:
mkbootimg --kernel zImage --ramdisk initramfs.cpio.gz --base 0x20000000
--cmdline 'no_console_suspend=1' -o new_boot.img
this address thing and cmdline but if i replace just ramdisk i dont need to set up addres again cos everything will be in same place. And one more question if something goes wrong can i boot to recovery or download mode?
New kernel copied itself to mmcblk0p5
and i have new CWM now. So it seems to me recovery is inside mmcblk0p5 as well and my phone never use mmcblk0p6

@tobr, I cannot open the archive of boot.img-kernel.gz. When I try to open it with terminal, it says: Not a valid gzip file. What to do?

Related

sciript eror (help me)

Code:
make -j5 ARCH=arm CROSS_COMPILE=/home/username/android/4.4.4/bin/arm-none-eabi-
it is true? or missing
Does anyone know??????????????????
What would you like to achieve with that?
AFAIK zImage is the compiled Linux kernel (no Java program)
I am also interested
zImage is a gzip compressed image. If you want to extract it use gunzip. to re-pack use gzip.
I wonder what you would like to achieve with uncompressing the kernel
boot.img tools download link
rar pas: ketut.kumajaya
second question. please help me

Android Kitchen tools/mkboot/android_filesystem_config.h including

Hi
I want to add to my custom ROM a new group id, which I have defined in the file "android_filesystem_config.h".
In general, this file will be included by the android source code, unfortunately my custom ROM has it also built in it sources and I don't have access to this header file.
Then I saw, that android kitchen has in its folder tools/mkboot the file "android_filesystem_config.h". How is this config file used by the kitchen, has it any influence on building the boot.img in the tool or not?
I tried to build a boot.img by running
Code:
mkbootimg --kernel zImage --initrd.gz -o boot.img
, but the modified android_filesystem_config.h did not have any influence. What is the tool mkbootfs for?
Is it even possible to patch a boot.img whit new gid information or do I have to rebuild a whole ASOP?
Thanks and regards
cloooned

[TOOL][SHARE] Boot.img tools (unpack,repack,ramdisk)

Note: I'm just sharing the work of the XDA Member CNexus.Here's a little introduction by him :
CNexus said:
I have not seen this posted anywhere, so I thought I would post it here. This is NOT purely my work, and I do not take credit for it as such.
Included in the attached ZIP are the following files:
boot_info - prints information about the boot.img passed to it, including the base address and ramdisk address. This tool prints out everything needed to repack the boot.img correctly.
split_boot - More commonly known as split_bootimg.pl, this rips apart the boot.img to extract the ramdisk and zImage. It has been modified by me to split the boot.img into a separate folder (specified by the file name of the boot.img passed to it) and to extract the ramdisk into a sub-folder as well (extracts the cpio from the gz and then extracts the actual files from the cpio archive)
unpack_ramdisk - unpacks the given ramdisk file.
Code:
Usage: unpack_ramdisk
repack_ramdisk - repacks the ramdisk from the given directory (found online and modified slightly to take a directory)
Code:
Usage: repack_ramdisk [outputFile]
mkbootimg - mkbootimg binary that creates a boot.img file from the given ramdisk and zImage. Updated to a version compiled by me to support the --ramdiskaddr option (ramdisk address) so that even nonstandard boot.img's can be repacked correctly (Use with boot_info for best results).
umkbootimg - included for convenience. Not made by me. Original thread here.
unpack - wrapper script made by me for the umkbootimg binary^ to unpack the boot.img into a separate directory and then unpack the ramdisk into a sub-directory.
Note: These tools were made for Linux. They may also work on Cygwin, but I have not personally tested them.
ANYONE is free to use / modify / kang these files as they see fit. No need to ever ask or do anything more than download.
Enjoy.
Click to expand...
Click to collapse
Download the required files from the original thread.
Original Thread : http://forum.xda-developers.com/showthread.php?t=2319018
1+
Sent from my GT-S5360 using Tapatalk 2

[Q] Can't boot compiled stock kernel

Hi
My main goal is to disable the lcd connectivity check while the phone is booting. I have searched the net and decided to comile a kernel and disable the check. Because this is my first attempt of kernel compiling I am first trying to just compile the stock rom. I have seccessfully compiled one using these threads:
[GUIDE]Newbie's Guide to Kernel Compiling -- http://forum.xda-developers.com/showthread.php?t=2576721
[TUT]Compile a kernel from Sony source -- http://forum.xda-developers.com/showthread.php?t=2285731
After compile I have a zImage file. I need a ramdisk so I unpack the kernel.sin inside the stock .ftf file using @DooMLoRD's tools found in his github repository. So there are two files a zImage and a kernel.sin-ramdisk.cpio.gz. Then I execute this command:
Code:
mkbootimg --kernel zImage --ramdisk kernel.sin-ramdisk.cpio.gz --base 0x00200000 -o boot.img
Note: If I don't put the --base 0x00200000 tag I get wrong range error in fastboot! If it's wrong I am happy to know how I should handle it!
After that I run this command in terminal:
Code:
fastboot boot boot.img
but nothing happens. Not even a small viberation. I have read about some filler stuff to be added to the ramdisk but there is no clear explanation on how to do it exactly.
(Please help me as I am stuck for 2 days!)
thanks in advanced!
Use an alternative ramdisk like that of my kernel (or doomkernel) instead of stock ramdisk
Alternatively un pack the ramdisk and add any file ~700KB-1MB and repack it.
extract the ramdisk files
add filler
use
In that folder
Code:
find . | cpio --quiet -o -H newc | gzip > ../ramdisk.img
You will get the ramdisk.img out side the folder .
Code:
mkbootimg --kernel zImage --ramdisk ramdisk.img --base 0x00200000 -o boot.img
karandpr said:
Use an alternative ramdisk like that of my kernel (or doomkernel) instead of stock ramdisk
Alternatively un pack the ramdisk and add any file ~700KB-1MB and repack it.
extract the ramdisk files
add filler
use
In that folder
Code:
find . | cpio --quiet -o -H newc | gzip > ../ramdisk.img
You will get the ramdisk.img out side the folder .
Code:
mkbootimg --kernel zImage --ramdisk ramdisk.img --base 0x00200000 -o boot.img
Click to expand...
Click to collapse
Thanks. I have a question. Is the filler thing only for stock ramdisks or should it be done for yours too?
I added a file as you said to stock ramdisk and builded the ramdisk.img with the comand you said.
I have two files:
ramdisk.img --> 981.6KB
zImage --> 3.8MB
then I run the mkbootimg command and after that I fastboot boot but nothing happens!
mike-wright said:
I added a file as you said to stock ramdisk and builded the ramdisk.img with the comand you said.
I have two files:
ramdisk.img --> 981.6KB
zImage --> 3.8MB
then I run the mkbootimg command and after that I fastboot boot but nothing happens!
Click to expand...
Click to collapse
mike-wright said:
Thanks. I have a question. Is the filler thing only for stock ramdisks or should it be done for yours too?
Click to expand...
Click to collapse
Filler is only for stock Ramdisk.
the files are alright.
What phone are you using ?
Best solution is to use a kitchen like
http://forum.xda-developers.com/showthread.php?t=1659584
Use ramdisk of Lupus or Doom kernel...If you are using mdpi then you can use my ramdisk.
karandpr said:
Filler is only for stock Ramdisk.
the files are alright.
What phone are you using ?
Best solution is to use a kitchen like
http://forum.xda-developers.com/showthread.php?t=1659584
Use ramdisk of Lupus or Doom kernel...If you are using mdpi then you can use my ramdisk.
Click to expand...
Click to collapse
Thank you for reply. I am using xperia mini st15i. I figured it out. It was my zImage. I changed my OS to ubuntu 14.04 32 bit and compiled with @DooMLoRD's arm-eabi-4.4.3 (before I was using a ubuntu 14.04 64 bit mac version with arm-linux-eabi-4.7 toolchain) and used your (@karandpr --> Doopler) ramdisk and now my kernel boots!!!
I have another question though. Now I change one function (named check_panel_ids) in mddi_sony_s6d05a1_hvga.c in kernel drivers and it compiles well but after boot the wifi is off!!! can you help me with this problem? I don't know why!!! Why should lcd drivers change wifi compatibility???
What has happend is the wifi switch is off and grayed out. Sometimes it's ordinary but when you turn it on it just grays out! The hotspot has the same issue
I have tried to install the modules but I dont have them (I found one but it didn't work) and I dont know how to install them.
What can I do to fix this issue?
mike-wright said:
Thank you for reply. I am using xperia mini st15i. I figured it out. It was my zImage. I changed my OS to ubuntu 14.04 32 bit and compiled with @DooMLoRD's arm-eabi-4.4.3 (before I was using a ubuntu 14.04 64 bit mac version with arm-linux-eabi-4.7 toolchain) and used your (@karandpr --> Doopler) ramdisk and now my kernel boots!!!
I have another question though. Now I change one function (named check_panel_ids) in mddi_sony_s6d05a1_hvga.c in kernel drivers and it compiles well but after boot the wifi is off!!! can you help me with this problem? I don't know why!!! Why should lcd drivers change wifi compatibility???
Click to expand...
Click to collapse
mike-wright said:
What has happend is the wifi switch is off and grayed out. Sometimes it's ordinary but when you turn it on it just grays out! The hotspot has the same issue
I have tried to install the modules but I dont have them (I found one but it didn't work) and I dont know how to install them.
What can I do to fix this issue?
Click to expand...
Click to collapse
You might need to recompile the WiFi drivers.
use
Bash:
lsmod
to check if the WiFi modules are properly loaded

[GUIDE] Make a kernel for G531F variant

So, I'm doing this tutorial due to the trial and error I got.
Prerequisites:
Ubuntu or any linux-based os with the right packages installed
Source code from the kernel
Backup of you boot partition
These tools here
Patience
1) The first thing you want to do is to do a backup of your boot partition.
Code:
adb shell
dd if=/dev/block/mmcblk0p9 of=/sdcard/boot.img
2) Download the source code from here, extract it and place it somewhere. I placed it in /home/fabio/Documentos/Kernel/sourcecode
3) Download a toolchain, I downloaded "aarch64-linux-android-4.8" from google and placed in "/home/<your username>/Documentos/Kernel/aarch64-linux-android-4.8"
4) Go to your kernel source code and find the file "Makefile", open it and change CROSS_COMPILE= to say the place where you stored the toolchain "/home/<your username>/Documentos/Kernel/aarch64-linux-android-4.8" + "/bin/aarch64-linux-android-"
5) Now that you are done setting up the stuff, open a console and navigate to your kernel source code root and type
Code:
make
make pxa1908_grandprimevelte_eur_defconfig
make -j#
# is the number of cores + 1
6) While that runs, go to where you stored those mkbootimg tools and unpack that boot.img you backed up
7) Once the kernel building is complete. Go to your kernel folder and navigate to arch/arm64/boot and copy the file "Image.gz"
8) Download bless or an Hex Editor of your liking and open the following files: boot.img (the original boot), Image.gz, boot.img-zImage.
Search on the "boot.img-zImage" for 1F 8B 08 and copy everything before then on your Image.gz place what you copied and save it as a different file otherwise it will fail to save.
9) Go to your mkbootimg folder and where you stored the unpacked files and build one boot.img with the following command
Code:
./mkbootimg --kernel image2.gz --ramdisk boot.img-ramdisk.gz --dt boot.img-dt --signature boot.img-signature -o boot2.img
10) Flash the boot2.img using any software you want!
THIS MIGHT NOT WORK! If it doesn't you can send me a DM! I will be retouching this post again and make it prettier adding pictures and stuff but for now I can't do much!
If you know a better way of doing this please say in the replies! I will be building a kernel for this device soon enough
RESERVED
Can you please upload link of custom kernel
I'm still trying to do a kernel with new features, but don't know what to add yet. Trying to make Init.d support without 3rd party apps!
EDIT1: I give up! My phone is too much trouble and since SAMSUNG doesn't care about it neither do I anymore! Try to build the kernel yourself and tweak it as you like! Make a script to automate this process to be easier! Good luck! Anything you need just say
Can you help this guy for porting kernel source code http://forum.xda-developers.com/grand-prime/general/developers-discussion-sm-g531f-custom-t3444598
fabiossilva21 said:
So, I'm doing this tutorial due to the trial and error I got.
Prerequisites:
Ubuntu or any linux-based os with the right packages installed
Source code from the kernel
Backup of you boot partition
Degas mkbootimg tools
Patience
1) The first thing you want to do is to do a backup of your boot partition.
Code:
adb shell
dd if=/dev/block/mmcblk0p9 of=/sdcard/boot.img
2) Download the source code from here, extract it and place it somewhere. I placed it in /home/fabio/Documentos/Kernel/sourcecode
3) Download a toolchain, I downloaded "aarch64-linux-android-4.8" from google and placed in "/home/fabio/Documentos/Kernel/aarch64-linux-android-4.8"
4) Go to your kernel source code and find the file "Makefile", open it and change CROSS_COMPILE= to say the place where you stored the toolchain "/home/fabio/Documentos/Kernel/aarch64-linux-android-4.8" + "/bin/aarch64-linux-android-"
5) Now that you are done setting up the stuff, open a console and navigate to your kernel source code root and type
Code:
make
make pxa1908_grandprimevelte_eur_defconfig
make -j#
# is the number of cores + 1
6) While that runs, go to where you stored degas-mkbootimg tools and unpack that boot.img you backed up
7) Once the kernel building is complete. Go to your kernel folder and navigate to arch/arm64/boot and copy the file "Image.gz"
8) Download bless (Hex Edit) and open the following files: boot.img (the original boot), Image.gz, boot.img-zImage.
Search on the "boot.img-zImage" for 1F 8B 08 and copy everything before then on your Image.gz place what you copied and save it as a different file otherwise it will fail to save.
9) Go to your degas-mkbootimg folder and where you stored the unpacked files and build one boot.img with the following command
Code:
./degas-mkbootimg --kernel image2.gz --ramdisk boot.img-ramdisk.gz --dt boot.img-dt --signature boot.img-signature -o boot2.img
10) Flash the boot2.img using any software you want!
THIS MIGHT NOT WORK! If it doesn't you can send me a DM! I will be retouching this post again and make it prettier adding pictures and stuff but for now I can't do much!
If you know a better way of doing this please say in the replies! I will be building a kernel for this device soon enough
Click to expand...
Click to collapse
i follow this step and build kernel after flash boot.img phone not booting
my boot.img size is 8.2MB (image.gz size 6.5MB) where stock size is 8MB
is problem with size?
sorry for my bad english
How did you flash the boot.img?
fabiossilva21 said:
How did you flash the boot.img?
Click to expand...
Click to collapse
using odin
What changes did you make to the kernel?
fabiossilva21 said:
What changes did you make to the kernel?
Click to expand...
Click to collapse
Add governors
Other setting same as stock
If i build with stock setting without any changes then kernel boot but if i change something then its stuck on Samsung logo
Sorry, I can't really help you... I no longer work with Grand prime... switched to a J5
fabiossilva21 said:
Sorry, I can't really help you... I no longer work with Grand prime... switched to a J5
Click to expand...
Click to collapse
Ok
Noice

Categories

Resources