[TOOLS][script] ROM Tools v2 (Kernel Extractor)(BML15 IMG backup) - Galaxy Ace S5830i Android Development

ROM Tools v2 ​
Version 2 BETA
v2b (Officially v2)
Linux Script
by iamareebjamal
Automated Android script for extracting boot.img and bml15 partition​
My PC has issues so I can't use it to build mods and scripts, also, I have a very slow internet connection. That's why I don't upload my ROMs. Provided, I build EACH and EVERY one of my mod on my mobile, including those long scripts with repeating commands and making it easy for other guys to use, I could've just created a script with two commands which rendered error if used incorrectly, but I make it noob proof in every way possible so that there are minimum errors from your side and if something gets wrong, you know what it is. Even uploading 5 mb of mod makes it very difficult as I have to reupload if it fails. Writing scripts on mobile is not easy, you'll know if you have done it, it takes hours. Also, these colorful and easy guides are also made on mobile by writing BB codes ONE BY ONE by hand.
I am telling you because a person day before yesterday posted my Amazing Sounds Mod in another forum without my permission. However, he has removed it now. My work is fully open sourced for you to learn and make your own mods. But taking part of my work and posting as yours is not appreciated.
The MOST you can give me is love, prayers and Thanks
Click to expand...
Click to collapse
Out of the time I was absent from XDA(13 hours ) , I was searching for a method of extracting the kernel from your ROM
Imagine, you want to extract boot.img from your ROM but don't know what to do, you don't have internet to download the stock or custom kernel or simply want to extract it?
I did not find anything except the solution of Android Kitchen but what if you want to do it on your android?
As a bi product of this search, I got a lot of knowledge about the partitions used by Android system and the blocks that define them.
I also got basic knowledge about Linux Scripting.
So, I created this script that backs up your boot.img and bml15.img partitions.​
​ boot.img - kernel of your device
bootextractorv2.sh - Backs up your kernel
bml15.img - IMEI partition
bml15extractorv2.sh - Backs up your IMEI partition
Note:- SGY Toolbox also backs up and restores bml15_EFS.img. And that also with a nice user interface, I just created this mod, because I wanted to but I recommend newbies to use SGY Toolbox for backing up IMEI
However, I found no tool able to backup the kernel, so it may be very useful for some members
ChangeLog
Code:
*More Interactive
*More Intelligent
*Added Option to create Odin Flashable Tar package for kernel
*More Convinient
Requirements :​
Root Acess
Busybox
Android device
Hands
Terminal Emulator or Script Manager
(Script Manager recommended)​
Instructions​
Script Manager Method (Easy):-
1. Download Script Manager.
2.Download desired script and place it on sdcard.
3. Open Script Manager and enable browse as root.
4. Go to the downloaded script and click on the green android icon(root) in the pop up window.
5. Click on Run. Follow Instructions and enjoy
Terminal Emulator Method (Hard):
1. Download Terminal Emulator.
2. Download desired script and place it in the root of the sdcard.
(You can place it anywhere else but the directory should not have spaces and you will have to change the commands accordingly)
3. Open Terminal Emulator and type (After every command you have to press enter)
Code:
su
And Grant Root Access
Then, type
Code:
sh /sdcard/bootextractorv2.sh
or
Code:
sh /sdcard/bml15extractorv2.sh
according to the the script you want to run
4. Now, follow the instructions on screen and enjoy
Download bootextractorv2.sh
Download bml15extractorv2.sh​
Credits :
Miscellaneous Google search posts showing how to write Linux Script
Me for writing the script
Rafael.Baugis for source
Ryuinferno for guide

Reserved

I'll test on S5830 and report asap
edit: Script wouldn't run on S5830 with script manager. With terminal emulator it dumps an empty boot.img

daxanh said:
I'll test on S5830 and report asap
edit: Script wouldn't run on S5830 with script manager. With terminal emulator it dumps an empty boot.img
Click to expand...
Click to collapse
kernel partition of s5830 is different
Give me the Partition
And I will make the mod

V2 completed
Uploading ASAP

OP Updated
v2 released

nice work man...thaks a lot
Sent from my GT-S5830i using xda app-developers app

He didn't really mean the love and prayers.

Nabs Zains said:
He didn't really mean the love and prayers.
Click to expand...
Click to collapse
lol
ROFL
You disclosed my secret Nabs

:good: simple & important... all ace_i owner should get this before 'cooking' ur device...

nice tool for kernel backup... :good:

Doesn't work for me, S5830i stock firmware. If I use script manager method, a lot of "not found" messages, and finally the boot folder is empty. I give script manager root permission. And if I use a terminal emulator, the same error messages, finally there is a 5MB boot.img file, but "untouchable". I can not copy in any other folder. If I connect to PC, boot.img is missing. Appears again in the mobile when I disconnet the USB. I can not change file permissions with root explorer....
Also when the script ask if I want to create a zip file for recovery, I select 1 and I get "bad integer, run again"
Thank you

puntillero said:
Doesn't work for me, S5830i stock firmware. If I use script manager method, a lot of "not found" messages, and finally the boot folder is empty. I give script manager root permission. And if I use a terminal emulator, the same error messages, finally there is a 5MB boot.img file, but "untouchable". I can not copy in any other folder. If I connect to PC, boot.img is missing. Appears again in the mobile when I disconnet the USB. I can not change file permissions with root explorer....
Also when the script ask if I want to create a zip file for recovery, I select 1 and I get "bad integer, run again"
Thank you
Click to expand...
Click to collapse
You have busybox?
If no,
You can't run it

Yes, and the script founds it (it says). Finally I zipped boot.img with root explorer and that zip file could be copied to the PC. Guess the file is ok. Thanks.

puntillero said:
Yes, and the script founds it (it says). Finally I zipped boot.img with root explorer and that zip file could be copied to the PC. Guess the file is ok. Thanks.
Click to expand...
Click to collapse
Why you zipped it?

English is not my language. I explained that boot.img was untouchable. I tried to copy to computer and I always got writing errors. Rebooting wasn't useful. Permissions couldn't be changed with root explorer.. The file was there, but couldn't do anything with It. Tried to zip it and it worked, and I copied the zip to my computer..

puntillero said:
English is not my language. I explained that boot.img was untouchable. I tried to copy to computer and I always got writing errors. Rebooting wasn't useful. Permissions couldn't be changed with root explorer.. The file was there, but couldn't do anything with It. Tried to zip it and it worked, and I copied the zip to my computer..
Click to expand...
Click to collapse
Sure that there is problem in busybox applet sync
I don't know why script couldn't detect it

I don't know what the problem was. I installed, not without many problems, the last busybox available, and everything worked ok. Out of curiosity, I compared boot.img file extracted with "problems" and the boot.img extracted now cleanly, and are identical.
Regards

[Q] IMEI backup work on GT-S5570 Galaxy Mini???
Sent from East Borneo Isand use Honey Bear's Phone

S5570 has another partition table
So no
Sent from my GT-I9100 using muffin premium

Related

[HOWTO] Delete system apps

There is many of you that asks how to remove this and that preinstallaed apps in different ROM
When a developer put apps in system/app it can not be removed so easy.
But if you have RomManager or fakeflash´s update.zip there is a other way.
I have attached a zip fil that contains a ordinare ROM installation script that only contains delete and copy.
Download file and unzip on your computer and take a look in the folders
data/app
META-INF/com/google/android/update-script
system/app
If your only wish is to remove a systemapp
edit the file update-script (textfile)
and add line with the filename of what you want to remove:
(example)
delete SYSTEM:app/unwanted.apk
delete SYSTEM:app/unwanted.odex
If you want to install some apps put them in system/app for not installable
and data/app for apps that can be removed as usual
rezip folders and install zip with RomManager NO WIPE!!
cm6 azures you will get a error because not same structure for data/app
never mind just select reboot. Delete will work anyway.
Sometimes there will be .so files in system/libs too. They are little more difficult to know which to remove so that demands more knowledge of the app.
Use for instance Astro filemanager or Estrong to look in system/app for correct filename to delete
Script work even if *.odex not exist.
The fact that when you zip folders it will not be signed so file will not work with adb recovery
Googleapps filenames:
CarHomeGoogle.apk, CarHomeLauncher.apk, com.amazon.mp3.apk,
Facebook.apk, GenieWidget.apk, Gmail.apk, GoogleBackupTransport.apk,
GoogleCalendarSyncAdapter.apk, GoogleContactsSyncAdapter.apk,
GoogleFeedback.apk, GoogleGoggles.apk, GooglePartnerSetup.apk, GoogleQuickSearchBox.apk, GoogleServicesFramework.apk, googlevoice.apk,
HtcCopyright.apk, HtcEmailPolicy.apk, HtcSettings.apk, kickback.apk, LatinImeGoogle.apk, LatinImeTutorial.apk, Maps.apk, MarketUpdater.apk, MediaUploader.apk, NetworkLocation.apk, OneTimeInitializer.apk, PassionQuickOffice.apk, SetupWizard.apk, soundback.apk, Street.apk, Talk.apk, talkback.apk, Twitter.apk, Vending.apk, VoiceSearch.apk, YouTube.apk, QuickSearchBox.apk, Provision.apk
Other apps:
ADWLauncher.apk, Gallery3D.apk
but filename may be different depending of ROM
Mainpart must exist for using phone normally
Hope that this help to remove "non-removable" systemapps in future.
/Snakehult
Good guide.
via Legend using XDA-app
Thanks snakehult - great guide and very useful!!
snakehult said:
(example)
delete SYSTEM:app/unwanted.apk
delete SYSTEM:app/unwanted.odex
Click to expand...
Click to collapse
It may be worth explaining how people:
- can find out the name of the app they want to remove;
- how they know whether to add the suffix of *.apk or *.odex, or both;
Thanks again for your efforts!
c_man said:
Thanks snakehult - great guide and very useful!!
It may be worth explaining how people:
- can find out the name of the app they want to remove;
- how they know whether to add the suffix of *.apk or *.odex, or both;
Thanks again for your efforts!
Click to expand...
Click to collapse
Yes you can use some regular filemanager such Astro or Estrongs and look in system/app
Always delete both, script work even if odex file is missing
c_man said:
It may be worth explaining how people:
- can find out the name of the app they want to remove;
- how they know whether to add the suffix of *.apk or *.odex, or both;
Thanks again for your efforts!
Click to expand...
Click to collapse
cool guide!
anyway you have to detect the filename of the apps this way:
enter the recovery mode (in modaco-root-r4: recovery-windows.bat)
now type:
adb shell
mount -t yaffs2 /dev/block/mtdblock3 /system
ls -l /system/app
(this will give you the list of system apps, with space usage)
you have to delete both .apk and .odex files (the latter may not exist)
I use to delete the bigger ringtones too, the list is given by
ls -l /system/media/audio/ringtones
it is safe to delete, after you setup the google accounts (ie after first boot):
HTCSetup*
com.htc.Setup*
Stock*
HtcFoot*
NewsRead*
wow its working......thanks dude........
Uploaded with ImageShack.us
http://android.modaco.com/content/h...apps-from-the-htc-desire-with-adb-in-windows/
Simple guide from MoDaCo
That must be the hardest way to remove apps i guess Have you seen "modaco guide"? All you have to do is reboot your phone in to recovery mode and type 2-3 commands in ADB. Simple as that.
Thanks anyway for your efforts
Many way för same thing
But with a custom-made zipfile you always remove/install favourite apps without adb. And quick modify new ROM install.
Sent from my Legend using XDA App
Hello,
Good guide.
The Legend may be rooted to do this?
I am a newbie.
Thanks.
bobstar_fr said:
Hello,
Good guide.
The Legend may be rooted to do this?
I am a newbie.
Thanks.
Click to expand...
Click to collapse
As I see it, no use to do much in the dev forum without an rooted Phone
hey guys, thanks for bringing this up. i just tried modaco site method and i deleted stock and its widget only. the internal storage shot from 113 mb to 122 mb and ram from 42 to 134 mb !
what else can i delete
Learners Lisence said:
hey guys, thanks for bringing this up. i just tried modaco site method and i deleted stock and its widget only. the internal storage shot from 113 mb to 122 mb and ram from 42 to 134 mb !
what else can i delete
Click to expand...
Click to collapse
Just delete what you will never use and....no regret
thank you cryshop for your expert advise
i tried deleting Innovation.mp3 by this script -
adb-windows shell rm /system/media/audio/ringtones/Innovation.mp3
said file not found even though its listed.
whats my mistake ?
i will try snakehults method also but later.
thanks
im trying to use modaco's method but what is the green recovery menu?
i dont understand i go in fastboot then recovery and then?thank you
edit done im stupid
Learners Lisence said:
thank you cryshop for your expert advise
i tried deleting Innovation.mp3 by this script -
adb-windows shell rm /system/media/audio/ringtones/Innovation.mp3
said file not found even though its listed.
whats my mistake ?
i will try snakehults method also but later.
thanks
Click to expand...
Click to collapse
Hmm, did you forget a slash or a letter in the command? because I tried and I could actually delete it.
@kdma : install ROM Manager from the Market, and there is an option inside the app : Reboot into Recovery (easiest way to get into recovery mod)
I also deleted /system/etc/clock* and saved some space again
(of course I don't need Htc clock widgets)
cryshop said:
Hmm, did you forget a slash or a letter in the command? because I tried and I could actually delete it.
Click to expand...
Click to collapse
cryshop, i was typing in the wrong directory
Ps - snakehults's appfixer is real delight ! smooooth.
except that my winzip is a trial version and legend dont recognize winrar files.
I was wondering how i got such good figures for change in space and ram the first time. i havent since then. my legend just likes the rebooting involved coz i dont use task killers anymore. and maybe i deleted more than just stock the first time
Will this work with android 2.2 on Hero?
Hey I've been looking all over for something like this. I downloaded the zip, added the lines
delete SYSTEM:app/mms.apk
delete SYSTEM:app/mms.odex
delete SYSTEM:app/email.apk
delete SYSTEM:app/email.odex
and rezipped it.
I used Rom Manager and selected install rom from SD card. It rebooted, seemed to execute the zip. But the original email and mms apps are still installed. What am i doing wrong?
kdma said:
im trying to use modaco's method but what is the green recovery menu?
i dont understand i go in fastboot then recovery and then?thank you
edit done im stupid
Click to expand...
Click to collapse
The first thing you should do is download the required zip file from modaco (I'm a new user of xda and is not permitted to post outside links here. You may easily find that post "24/May r4 - HTC Legend rooting guide - Now with 1.31.x" in android.madaco.com)
I think many of us rooted the device followed the instructions of Paul. So that file might be already in your hands.
Fastboot and then recovery, as you have done before. Run Recovery-linux.sh (or Recovery-windows.bat, if you use Windows) in a terminal window - your device shall be at the green recovery screen.
Open another terminal window and enter:
./adb-linux shell mount /system
and then you can push, pull or rm file. For example,
./adb-linux shell rm /system/app/Calculator.apk
./adb-linux push abc.so /system/lib
--
I didn't notice you have already solved the problem, when I compiled this post. It is no longer useful.

One click ODEXing a ROM for more RAM and better speed.

Here's an alternative way to gain more RAM and performance without odexing.
Get more RAM and faster responses by disabling verify-bytecode!
This process will usually give just as much as performance boost as odexing SYSTEM and USER app.
Click to expand...
Click to collapse
AS WITH ANY MODDING PROCEDURE/SCRIPTS FOR YOUR PHONE, THIS SCIPT ALSO COMES WITH NO WARRANTY. AUTHOR HOLDS NO RESPONSIBILITY FOR ANY DIRECT AND INDIRECT CONSEQUENCES OF RUNNING THIS SCRIPT. MAKE SURE YOU HAVE MADE A NAND BACKUP BEFORE PROCEEDING. MAKE SURE YOU HAVE AT LEAST 15% FREE ON /SYSTEM, THIS IS IMPORTANT BECAUSE IF YOU RUN OUT OF SPACE THINGS WILL GO BADLY WRONG..
Requires busybox.
If your system partition is almost full, have a look at http://forum.xda-developers.com/showthread.php?t=734236.
This script will *attempt* to odex all apks found at /system/app. Theming would be impossible once the ROM is odexed. Themes applied at the time of odexing will be preserved. If you plan on applying a theme, apply it before odexing. If you want to theme after odexing, you must deodex the ROM before theming. If you change themes often, odexing is not for you.
Quick Instructions for Windows:
Connect the phone with USB cable and enable USB debugging. (No wireless or Android Terminal shell)
Put the phone in airplane mode.
Download and extract the attached file and run odex.bat
Instructions for advanced users:
This attachment contains a folder called odex. Push that folder to data and set the permission of odex.sh to 4755. Mount system as r/w(could be done via adb remount system). Next, execute odex.sh. All of this should be done via USB using ADB shell. Do not use wireless adb or Android Terminal.
Advantages:
More free space in system partition.
Faster booting.
More free RAM(I was able to gain 20-30MB.)
Faster access to system apps.
Disadvantages:
Cannot be themed after odexing.
APK tweaks cannot be applied.
Might break some of the non-AOSP system apps such as Root Explorer if they are installed as system app.
Acknowledgments:
Only the odex.bat was created by me. Similar projects were done in past but most of the downloads are broken. So, I collected together different stuff from different places to put together this package.
adb.exe is from the RATC batch ROOT.
adb dlls are from Android SDK
odex.sh is from Paul O Brian from MoDaCo (pastebin.com/EZLWUdea)
zip, zipalign and dexopt-wrapper are from XDA (http://forum.xda-developers.com/showthread.php?t=734236)
Next aim: Odex for apps in data/app
Update:
I got 1017 on quadrant and 61.8fps on swiftdroid 2.0 M6 overclocked to 844MHz(offline mode with wifi on. No apps except system apps). It must be noted that sometimes odexed ROM performs slightly slower in benchmarks but the difference is very small. However, this does not mean their performance is lower. Odex means apps could load fast thereby making app switching, app loading really fast. And, it also reduces system RAM usage which means more apps could stay in memory making multi-tasking easier. Odexing is something like swap or compcache. Sacrifice something to gain something else. This is for some people who think odexing is useless. The drop in speed is so small that it cannot be noticed without a benchmark but the performance of the phone increases noticeably due to more space in dalvik and RAM.
Nice work.
Few remarks.
1) you need busybox installed for find
2) "busybox --install" defaults to /usr/bin (not available on android)
use "busybox --install ." when you cat-ed it to /system/xbin
Something seems not OK though with the odex.sh script?
Code:
Unable to create './Contacts.odex': File exists
zip warning: name not matched: classes.dex
zip error: Nothing to do! (./Contacts.apk)
Unable to open './Contacts.apk' as zip archive
failed on './Contacts.apk.new' - No such file or directory
Unable to create './VoiceSearch.odex': Permission denied
Unable to create './Music.odex': File exists
zip warning: name not matched: classes.dex
Cheers
Hmm, sorry, I just started to assume busybox is default since the two ROMs of concern(Joe's. Gingerbread and swiftdroid) had busybox.
Those apks are already odexed. You are on a partially odexed rom. Nothing to worry.
tweakradje said:
Nice work.
Few remarks.
1) you need busybox installed for find
2) "busybox --install" defaults to /usr/bin (not available on android)
use "busybox --install ." when you cat-ed it to /system/xbin
Something seems not OK though with the odex.sh script?
Code:
Unable to create './Contacts.odex': File exists
zip warning: name not matched: classes.dex
zip error: Nothing to do! (./Contacts.apk)
Unable to open './Contacts.apk' as zip archive
failed on './Contacts.apk.new' - No such file or directory
Unable to create './VoiceSearch.odex': Permission denied
Unable to create './Music.odex': File exists
zip warning: name not matched: classes.dex
Cheers
Click to expand...
Click to collapse
Sent from my GT540 using XDA App
i just applied a cm7 theme and the rom is still stable and the theme was applied after running the batch file
That depends on the theme. A theme that modifies odexed system apks will break things while an apk that modifies only the unodexed system apks will work. So, for most users, it would be safer to say that you shouldn't apply themes.
Sent from my GT540 using XDA App
First post has been updated.
Sent from my GT540 using XDA App
if you want to get even more ram odex your framework ... On my froyo with odexed framework i got 123mb ram with stock autokiller values This is only odexing system/app so you are able to theme your framework without problems ...
mikegapinski said:
if you want to get even more ram odex your framework ... On my froyo with odexed framework i got 123mb ram with stock autokiller values This is only odexing system/app so you are able to theme your framework without problems ...
Click to expand...
Click to collapse
I will try that. I was trying to odex data/apps. I odexed quadrant apk and saw a small gain of around 1% but it could be purely due to error or differences in conditions.
Framework isn't odexed doesn't mean all themes would work. Some themes modify other apks for more customizations. So, if you apply such a theme, it will break things. Better be safe than sorry. Saying that most themes would work, people might try to flash all themes thinking it won't break anything. It's just safer to deodex before theming. Of course, if you know what theme modify only framework and what theme modifies other apks, this shouldn't be a concern.
Update: odexing framework apk has reduced free memory to 60MB from previous 75MB
Might try add this into my app Root Toolbox if that's ok?
lukemovement1 said:
Might try add this into my app Root Toolbox if that's ok?
Click to expand...
Click to collapse
Hmm. You can but it's not a good idea. I tried odexing via terminal emulator but it fails.
Basically, this would not work if you try via root toolbox or rather it increases chances of being bricked. However, I noticed you had the scripts needed to flash an update.zip. If that's the case, you'll need to prepare an update.zip in real time and flash it via recovery.
http://forum.xda-developers.com/showthread.php?t=734236 This script moves the apps to SD and odexes. You will have to remove the appsupdate.sh and instead create an update.zip from odexed apps in sdcard. My script on the other hand, directly odexes without any user interaction.
On the other hand, I'd be glad to see this being simplified enough to pressing a button in root tool box. Only the bat script is mine. The rest are from other sources. I guess it shouldn't be a problem as long as you give credit to Paul O Brian from MoDaCo and the person who wrote deoxopt-wrapper.
And, btw, I noticed a small issue in your app. It has NO WARNINGS and NO CONFIRMATIONS! This is a real downer for an app like Root Toolbox which could brick your phone. You should ask for user confirmation whenever an user attempts to do a task that might brick your phone.
I am planning on adding the confirmation dialogs as soon as I can get back to my computer. For the odexing at runtime ill see if it works with app that don't have a GUI. If not ill do some kind of update.zip.
I'm on m6 and want to odex including framework how do I do this?
Sent from my GT540 using XDA App
Danzano said:
I'm on m6 and want to odex including framework how do I do this?
Sent from my GT540 using XDA App
Click to expand...
Click to collapse
Read start post.
And, to odex framework, you need to modify the line which says cd /system/app to cd /system/framework in odex.sh and go through same procedure.
I odexed framework but it made my ROM very unstable.
Hmmm maybe not such a good idea then
Sent from my GT540 using XDA App
this process connot access the file because it is being used by another process...
this process connot access the file because it is being used by another process...
this process connot access the file because it is being used by another process...
this process connot access the file because it is being used by another process...
starting odexing...it might take a few minutes to finish...
this process connot access the file because it is being used by another process...
this process connot access the file because it is being used by another process...
this process connot access the file because it is being used by another process...
this process connot access the file because it is being used by another process...
this process connot access the file because it is being used by another process...
this process connot access the file because it is being used by another process...
this process connot access the file because it is being used by another process...
your device is now odexed
is this right or is something wrong?
what way did you try and odex the rom?
the quick windows way
have you want to the system/app folder to see if any odex files there?
system/apps all apks no odex
try using script manager and set the script to run on boot to see if it work that way.

[Guide]How to Port roms to your mobile

This guide will help you in porting ROM's to different devices. Although it my not work 100% of the time, it should you show the steps involved in porting a ROM but also which files are important to a device's functionality.
Some handy tools to have before starting:
- The Android SDK, this contains ADB logcat which is a hugely important tool in ROM development. It lets us know what is perhaps causing an app to F/C or a ROM to bootloop. See our guide on how to set this up HERE
- Notepad++ , very useful for altering scripts.
- Patience, getting ports to boot can sometimes take a lot of effort and time but hopefully this guide will show you the quickest and easiest way to get your ported ROM booting.
Okay first decide which ROM you would like to port, don't port HDPI ROM's to MDPI devices or vice versa it just won't work.And it's best to start with the easy and simple ports to get some experience behind you before you go off porting Sense 3.0 to your X10.
Let's get started...
Porting is fairly easy and requires only some folders, files and a boot.img to be replaced.
Now because this is a universal guide I can only tell you how to get the basic hardware working on your port. AOSP ROMs are fairly easy to figure out so you won't have much trouble figuring out what needs replacing. Manufacturer specific ROMs such as Sense 3.0 ROMs are bit more difficult to figure out but the basic skills you will be taught here can be applied in principle to those ROMs.
1. First off lets start with the biggie, the kernel. Those of you familiar with linux will know how important the kernel is a to system, I won't go into detail here but if your kernel isn't specific to your device then your ROM won't boot. The kernel is contained within the boot.img of your ROM's zip (or zImage if it's a Samsung). During flashing it is unpacked and wrote to the system.
To replace the kernel we need to decompile it and no this isn't as easy as opening it winzip. The best way to do this is using Linux; we can use a combination of both perl scripts and terminal commands.
In order for us too see the kernel files contained within the boot.img, we need to first unpack it and this will extract the kernel binary and the ramdisk. What you need at this point is the split_bootimg.zip. This contains a perl script which will extract both files and display the boot.img header, the kernel command line and the board name (if specified).
An example of the output would be:
Page size: 2048 (0x00000800)
Kernel size: 1388548 (0x00153004)
Ramdisk size: 141518 (0x000228ce)
Second size: 0 (0x00000000)
Board name:
Command line: no_console_suspend=1
So how to use this perl script you ask? Well...
First open a terminal and cd to the directory which contains the perl scripts you just downloaded. Next, type this command: "perl split_bootimg.pl boot.img" and that will extract the kernel to your current directory.
Now, we need to extract the ramdisk, the ramdisk has been unpacked from the boot.img and is sitting your current directory with the file name "boot.img-ramdisk.gz", at the moment this still isn't useful to us so we need to un-gzip and then un-cpio it.
So for that we need the Linux terminal. So again from the terminal or using the same terminal enter these commands:
mkdir ramdisk < Creates a directory where we can store the ramdisk
cd ramdisk < Changes our current directory to that of the ramdisk
gzip -dc ../boot.img-ramdisk.gz | cpio -i < Will un-gzip and un-cpio ramdisk
Okay so now we can see all the ramdisk files:
./init.devicename.rc
./default.prop
./proc
./dev
./init.rc
./init
./sys
./init.goldfish.rc
./sbin
./sbin/adbd
./system
./data
So what's important here is the "init.devicename.rc" and "unvented.device.rc". This is the target devices .rc files contained within the ramdisk, now all we have to do here is rename this .rc file to that of the device you are porting to, e.g: "init.trout.rc" > "init.hero.rc"
Some devices ramdisk differ and may not contain "unvented.device.rc" so if this is case for you,then begin by renaming the init.device.rc to your model id and leave it at that. If you get problems well.. that's what the live support is for.
The other file which may be of use to us here is "init.rc", this contains all the system wide kernel properties which we can change to our liking but we'll leave as it is for now.
So now we've edited the ramdisk, we need to change the kernel so that the one the ROM uses is actually specific to our device, when we used the split_bootimg perl script it also unpacked the kernel and that is also in our current directory with the filename "boot.img-kernel".
Easiest way to replace the kernel is to take a kernel update zip for your device, un-zip it and rename the zImage file to "boot.img-kernel" and copy and replace the file of the same name in your directory.
Okay, now that's all done, we need to pack this back up into something that android can understand when it's being flashed. So we need to make a new boot.img from the files we have in our current directory.
First, we need to pack the ramdisk back up into it's original state, so again we need to use the Linux terminal. The command that will do this is this:
find . | cpio -o -H newc | gzip > ../newramdisk.cpio.gz
Remember the ../ is the path to the directory of your ramdisk, remember to remove anything that won't be used by the kernel as cpio will include EVERYTHING in the working directory.
Okay now that the ramdisk is back in it's original format we need to repack the kernel and ramdisk into the boot.img.
So back into the terminal we go and this time we're going to use the "repack-bootimg" perl script (as if that wasn't obvious enough). The command you will ise here is esentially the same to the one we used to split it, so:
"perl repack-bootimg.pl ../path to kernel ../path to ramdisk directory ../path to outfile"
And the boot.img is complete!
So if we look back to the ROM we are porting we can see that we need to put the boot.img into the root of the zip, this will hold true for almost every Android ROM. Next we need to replace some of the files which allow the hardware and keys to work. This is the easy part.
Go into the root of the zip and follow this path to the kernel modules; "/system/lib/modules" Delete all the files you find here.
Now take the kernel modules which came along with the kernel you added to the boot.img and copy them there. Next follow this path to the propietary hardware files;
"/system/lib/hw" Delete all the files you find here.
Again this as simple as taking the files from a ROM meant for your device and copying them into this directory. So what we've done there is added the kernel modules that we can set symlinks to in the updater-script and contain the modules needed for things like WiFi, bluetooth etc. The "/hw" directory as you can see contains the files which control the sensors and lights such as GPS and the accelerometer.
Next, we can look at making sure the hard and soft keys work, the files which contain the layout of your device keys can be found in;
"/system/usr/keylayout" and "/system/usr/keychars"
Touch only those 2 directories.
Delete all the files in here and copy the ones from your device (following the same directory) here.
Okay now to finish off we need to copy over the mount point information for your device and the WiFi drivers.
Follow this path; "/system/etc" and delete only these files and directories.
- vold.fstab
- /wifi
- /ppp
Now follow the same path in a ROM for your device and copy over these files.
Okay we're done!
Before flashing take a look and some guides which show you how to write updater-scripts, incase you need to create important symbolic links.
Happy Porting!
**mod edit** credits to JieeHD from the VillainROM team for this guide! original thread here: http://www.freeyourandroid.com/guide/porting-android
reserved for future......
Hey,how did i help in this?
PS:i m thinking of buying this phone.....is it any good?
i have both the galaxy sl and spice mi 410 i copied from your thread so had to give you credit even though you are not the original poster
spice mi 410 competely outshines galaxy sl so much so that i hardly use sl hooked to this at i.6ghz its lightning fast great plays any game hardly random reboots though average camera galaxy sl better
side note :if you could build succh a nice rom with sl god knows what good you can do with mi 410 please buy it haha
cranium rocks
oh cool............i had forgotten about that thread
2nd hand for 9999 only.................
Hey that's my tutorial... Hope it helps someone....
Sent from my SAMSUNG-SGH-I777 using xda premium
rdannar said:
Hey that's my tutorial... Hope it helps someone....
Sent from my SAMSUNG-SGH-I777 using xda premium
Click to expand...
Click to collapse
than credit to you i am just sharing with everyone "hope it helps someone"
Thank you!!! Will try too port a gt-I9100 rom to a gt-I9100G.
Hope it will be easy with this guide.
Dear Preyesh1.... Could you add the credit to the creator of this guide or at least you mention the url source because I've seen this guide just exactly as in this thread somewhere in the internet.
Except if this guide is pure of yours.
Just to remind...
Edited: Never mind... The creator has been here after all...
I have some questions:
so this means you can take the U9000 android 2.2.2 kernel and merge with ICS?
or does this only works with kernel coming from a GB build to another GB build?
It will help me cause I'm gonna use it soon
Sent from my Triumph using XDA
ziggy46 said:
It will help me cause I'm gonna use it soon
Sent from my Triumph using XDA
Click to expand...
Click to collapse
Hey are you going to port your rom to your device this will be great...!!
I wanna try this great tutorial
Sent from my Droid using Tapatalk
Nice plagiarism.
I mean look at that OP. You've selected the entire article, hit copy, hit new post here, hit paste then hit submit. That's plagiarism of the laziest kind you could have at the very least put some effort in, formatted the text, used code blocks etc.
My word.
edit:
preyesh1 said:
See our guide on how to set this up HERE
Click to expand...
Click to collapse
Hahahahaha.

[GUIDE] Create your own Soft-MODs

USING DSIXDA's KITCHEN TO CREATE YOUR OWN SOFT-MODs
(THIS IS MY FIRST BIG TUTORIAL, SO PLEASE CO-OPERATE AND HELP ME MAKING THIS GUIDE BETTER!!)
DsiXDA has created an excellent Kitchen for 'cooking' custom ROMs. So first THANKS goes to DsiXDA.
READ THIS BEFORE PROCEEDING:
Click to expand...
Click to collapse
For Kitchen to get working you need a Linux environment. My choice is go for Ubuntu 10.04 / 10.10 (I won't recommend 11.xx as Unity spoils the 'Cooking' experience). You should have a little bit of experience with Ubuntu. You can do it on Windows too. Install Ubuntu inside VirtualBox. I won't recommend using cygwin as it may reduce the performance.
Click to expand...
Click to collapse
GIVE CREDITS TO THE ORIGINAL DEVELOPER
I. Setup the Kitchen:
Download DsiXDA's Kitchen at https://github.com/dsixda/Android-Kitchen/archives/master. Download the 0.179 version
Get an 'original' ROM (not soft-modded). The ROM that I used in this tutorial is Pebe's CyanogenMod 7
Get JDK. It's necessary. Execute the following command in Terminal:
sudo apt-get install openjdk-7-jdk
When asked for password, enter the one which you use for logging in.
For 64-bit system, you need the ia32-libs ( sudo apt-get install ia32-libs )
Extract the contents of the dsiXDA's kitchen to a folder, say kitchen, in your Home folder (for convenience). Just inside the kitchen folder there should be the ./menu file
Open Terminal. Browse to your kitchen directory
cd ./kitchen
source ./menu
It should open up the Kitchen Menu
This is the basic setup of your Kitchen. Now move up to the next big step.
II. Actual ROM:
Copy the ROM (in my case, it is cm7_v2.zip (pebe's CM7)) and paste it in the original_update folder
Execute Kitchen (Step 5 from I). Select option '1. Setup working folder from ROM'. Another menu appears, hit ENTER. It'll show up the available ROMs list. It should display at least one ROM. In my case it was "(1) cm7_v2.zip". Enter selection number: 1. Hit ENTER. It'll prompt for changing the name, leave it, no need. Hit ENTER. It'll start extracting the ROM. In my case, it found the updater-script. It'll ask to convert the script into update-script. We want update-script at the moment, so just hit ENTER. It should say 'Finished setting the working folder!'. Hit ENTER. You'll be back to Menu.
The Menu shows various options like 'Adding Root permissions, installing busybox, etc'. You can play with them. As most of the ROMs have Root and Busybox installed, we don't need any of these features.
Now comes a bit advanced part. Select ADVANCED OPTIONS. There are various options like Deodex files, add Nano text editor, signing APKs, etc. I'll explain each of them:
Deodex: Merges ODEX and APK together. However, it's applicable for ODEXed ROMS (mostly Stock 2.1) only. Neither of GB and FroYo versions are ODEXed. So you can skip this step.
Add task killer tweak: It's a good alternative to Supercharger script. Only thing is, it isn't as versatile as Supercharger script. Leave this if you don't know anything about Task killer values like FOREGROUND APP, BACKGROUND APP, etc
Add data/app functionality: Suppose you've come across a situation that the system size reaches almost 150 MB (standard for GT540) and still you want to add some more apps, then this tweak is for you. It adds the /data/app folder. You can place apps in this folder. These apps will be directlty installed in the /data partition thus eliminating the 150MB limit.
Add Bash: Adds command-line completion in Terminal commands. Install if you want. Not needed.
Add Apps2SD: This is much primitive type of Apps2SD in which you have to create an ext partition on your SD card. Not recommended. Link2SD (app) is much better.
Add busybox run-parts: This tweak is most important one. I enables the startup scripts option, that means, scripts placed in /etc/init.d folder will get executed during the booting process. Recommended for Stock and AOSP ROMs only.
Add custom boot animation: If you want to add a custom boot animation to your ROM, then you need this. Select this option. It'll ask you to proceed, hit ENTER. A folder /data/local will be created inside the WORKING_xxxxxxx_xxxxxxx folder. Place your bootanimation.zip in that folder. Google some nice boot animations or if you want to create your own boot animations, Despotovski brothers had made a 'Boot Animation maker', check it here http://forum.xda-developers.com/showthread.php?t=1234611
Rest all tweaks are not required for now
III. Something's Cooking!
There will be a folder named something like WORKING_xxxxx_xxxxxxxx in your kitchen folder. Open it up. It contains the actual system, boot.img file, data directory etc.
The best feature of DsiXDA is that you can easily 'browse' the system.
Open the system folder. Here you can see the apps, etc, lib, usr, etc folders.
Adding / Removing Apps: Open the apps folder. You'll see APKs of all the system apps. Try removing some apps. You can remove Dev tools, pre-installed CM themes or any other app. Add your own apps. Copy-paste your apps here. If their filenames have spaces in them (like Root Explorer.apk) remove these spaces (like RootExplorer.apk). You can also use the /data folder for adding more apps.
Adding some other stuff: The /etc folder has a lot of cool stuff too. The apns-conf.xml file contains the APNs. System can auto-detect the APN according to your carrier. I got an apns-conf.xml file which contains a huge list of APNs. Just replace the existing file.
Adding Fonts: Pick your favorite font (I like Ubuntu). Grab the .ttf file of that font. Open /fonts folder. Remove the existing DroidSans.ttf file. Copy-paste your font file in it and rename it to DroidSans.ttf.
IV. Final Steps:
Open the kitchen menu. Advanced Options → Sign all APKs
Back to main menu. '9. Check update-script for errors'.
'6. Zipalign all APKs'
'99. Build ROM'. If it shows warning regarding BOOT-EXTRACTED folder exists, select y (remove BOOT-EXTRACTED).
Select a build option → 1. Interactive Mode
Would you like to Zipalign → n (we already did that before)
It'll start making update.zip.
Add updater-script to your ROM → y (We want compatibility with ClockworkMod)
Proceed with the change → y
Sign your ROM → y
Change the name → n
Once you're back to main menu, select Exit (x)
Your ROM is located in OUTPUT_ZIP folder (It'll be a zip file)
Copy this zip file on your SD card. Reboot into Recovery. Select 'Install zip from SD card', select the ZIP file.
Reboot. See if everything works properly.
I KNOW THERE MIGHT BE ZILLIONS OF ERRORS IN THIS GUIDE. IF YOU'RE STUCK AT SOME POINT OR CANNOT UNDERSTAND SOMETHING, TELL ME. I'LL TRY TO MAKE THIS GUIDE MORE EASIER TO UNDERSTAND.
THIS IS A BASIC SOFT-MODDING GUIDE. I'M DOING SOME INVESTIGATION REGARDING THEMING AND BUILD.PROP TWEAKS. I'LL BE ADDING THESE SECTIONS LATER.
WOW nice work making this TUT!!
Nice Work!
thanks!!
gonna try this out sometime
There is a search feature guys this was posted about like half a year ago
I tried the kitchen its not that great all you can do is zipalign change some options and re package
TBH androidboss you probably could do more using terminal and root explorer
Sent from my tf101 using xda premium 1.54Ghz
Guys! Before Soft-Modding please ask the Devs first. They worked and took up free time for those roms and they would like a thanks.
Danzano said:
There is a search feature guys this was posted about like half a year ago
I tried the kitchen its not that great all you can do is zipalign change some options and re package
TBH androidboss you probably could do more using terminal and root explorer
Sent from my tf101 using xda premium 1.54Ghz
Click to expand...
Click to collapse
really i should try one day!
with credits and thanks!!
Algud if you need tips or want a hand customizn give me a shout hell if you wana use enigma and just cretic it to you're liking be my guest
Sent from my tf101 using xda premium 1.54Ghz
Danzano said:
Algud if you need tips or want a hand customizn give me a shout hell if you wana use enigma and just cretic it to you're liking be my guest
Sent from my tf101 using xda premium 1.54Ghz
Click to expand...
Click to collapse
yeah thanx bro!!
i will try and make one during this weekend
once i get my phone fixed..
i will pm you if i need help with something about the
soft-mod!!
All good
Sent from my tf101 using xda premium 1.54Ghz
Danzano said:
All good
Sent from my tf101 using xda premium 1.54Ghz
Click to expand...
Click to collapse
pm' ed u!!
soz its a bit long!
I'll be writing the "Theming using UOT Kitchen" tutorial tonight
tejasdj12 said:
I'll be writing the "Theming using UOT Kitchen" tutorial tonight
Click to expand...
Click to collapse
http://forum.xda-developers.com/showthread.php?p=18934516#post18934516
you can base on this if u want

Automated system/boot.img unpack/repack script

Hello everyone,
I've been playing around with adding root to my stock ROM these past few days, and have found it very slow and tedious trying to remember all the commands to unpack and repack the images.
To make things simpler I've created a script that automates almost the whole process.
I've named it worker as it does all the work for you, and it is just simply a bash script. But it makes things a lot quicker and easier.
I have only been able to test with my S3 Mini, but should work with any ROM that has boot.img and system.img
Simply extract the .img files from the tar.md5 or .zip ROM file, and place them in the original folder.
Once you have those in the original folder just simply run the worker.txt file from the terminal, making sure you are in the worker folder directory.
When the script is run you will be given the options to unpack/repack system.img, mount system.img (This is after you extract it do not try and mount the original file it wont work), unpack/repack boot.img, unpack/repack ramdisk, create ROM (This will create an odin flashable tar.md5 from the repacked files) and finally clean up (This will clear all unpacked and repacked files only leaving the files in the original folder)
To select an option simply type y then enter to execute that command or just hit enter to skip.
When the system.img is mounted it will be mounted in the mount folder.
When repacking the system.img you will be prompted to enter the file size, if you have and S3 Mini I8190N simply type s3mini for the size (This may work for other S3 models but I have no way of testing so let me know). If you have a different device use the file size of the original UNMODIFIED system.img, enter the size in bytes or MB (If entering in MB use this format, xxx being a number. xxxM).
Please give me feedback for improvements or problems,
Thanks for reading.
P.S. Sorry if in wrong place please move if necessary
EDIT: If you can't run the script with the ./ command, chmod +x the file
Antonyb1995 said:
Hello everyone,
I've been playing around with adding root to my stock ROM these past few days, and have found it very slow and tedious trying to remember all the commands to unpack and repack the images.
To make things simpler I've created a script that automates almost the whole process.
I've named it worker as it does all the work for you, and it is just simply a bash script. But it makes things a lot quicker and easier.
I have only been able to test with my S3 Mini, but should work with any ROM that has boot.img and system.img
Simply extract the .img files from the tar.md5 or .zip ROM file, and place them in the original folder.
Once you have those in the original folder just simply run the worker.txt file from the terminal, making sure you are in the worker folder directory.
When the script is run you will be given the options to unpack/repack system.img, mount system.img (This is after you extract it do not try and mount the original file it wont work), unpack/repack boot.img, unpack/repack ramdisk, create ROM (This will create an odin flashable tar.md5 from the repacked files) and finally clean up (This will clear all unpacked and repacked files only leaving the files in the original folder)
To select an option simply type y then enter to execute that command or just hit enter to skip.
When the system.img is mounted it will be mounted in the mount folder.
When repacking the system.img you will be prompted to enter the file size, if you have and S3 Mini I8190N simply type s3mini for the size (This may work for other S3 models but I have no way of testing so let me know). If you have a different device use the file size of the original UNMODIFIED system.img, enter the size in bytes or MB (If entering in MB use this format, xxx being a number. xxxM).
Please give me feedback for improvements or problems,
Thanks for reading.
P.S. Sorry if in wrong place please move if necessary
Click to expand...
Click to collapse
work on gt-i8200n to?
linklusitano said:
work on gt-i8200n to?
Click to expand...
Click to collapse
No reason why not, I'm just not able to test others
Antonyb1995 said:
No reason why not, I'm just not able to test others
Click to expand...
Click to collapse
testing
linklusitano said:
testing
Click to expand...
Click to collapse
Great let me know if it works!
EDIT: Make sure you enter the right size for the system.img file, the pre entered size using s3mini may work fine as they are very similar devices.
Antonyb1995 said:
Great let me know if it works!
EDIT: Make sure you enter the right size for the system.img file, the pre entered size using s3mini may work fine as they are very similar devices.
Click to expand...
Click to collapse
how do i run worker.txt?
linklusitano said:
how do i run worker.txt?
Click to expand...
Click to collapse
Your using Linux right?
Open a terminal and change directory to the worker folder, once there type ./worker.txt and it should run. If it doesn't issue this command chmod +x worker.txt that should fix it.
Antonyb1995 said:
Your using Linux right?
Open a terminal and change directory to the worker folder, once there type ./worker.txt and it should run. If it doesn't issue this command chmod +x worker.txt that should fix it.
Click to expand...
Click to collapse
windows 8.1
linklusitano said:
windows 8.1
Click to expand...
Click to collapse
Ah okay, If you install Cygwin you can run bash scripts in Windows.
LINK: https://www.cygwin.com/

Categories

Resources