Related
Script is standalone : you can download latest version without upgrading from previous version
v1.6 > Big update on 3G+ tweak addon, more powerful and much faster
Build.prop Worktool - A powerful but safe build.prop manager/editor
Hi !
Okay guys, since I know how powerful the build.prop can be, I love to play with it.
But I was bored to edit using Root Explorer, or using ADB command-line...
So... Let me present you my outrageously complicated (internally) script to manage your build.prop right from your computer, with ease, fun and safety !
GENERAL :
For any Windows NT kernel (Developped under Windows 7 x64... so should work everywhere )
Portable and ready to use - No installation required, all files included (ADB with drivers also)
Lightweight (<3Mb unzipped, because of ADB very big lol)
Tested on XPERA x10i but should work on ANY Android powered device (if your ROM uses a build.prop located into /system/)
KEY FEATURES :
Easy open/edit your build.prop in your default text editor
Backup creation/management
Save backup on your computer and/or on your device
Safe (Automatic backup generator - Manages up to 2 backup files, exhaustive log file)
Automatic permissions management
Add-on capability : possible to add automated installation scripts to tweak your build.prop
List of present add-ons : 3G+ enhancement tweak
Very clean : deletes all temporary files, auto start/stop ADB server and kills the process when useless
Convenient : direct access to this thread, easy to use
v1.6+ : (beta) Build.prop XPlorer, to check with ease your build.prop
I based the main script on my 3G+ enhancement script, available on the official thread.
** As usual... Use at your own risk **
Test, comment, criticize, if you find anything, just drop a comment or PM
FAQ
FAQ- Supported devices
It is first developped for Sony Ericsson XPERIA x10, but it should work on any Android device with these requirements :
* Rooted
* File system is mounted Read/Write.
* Build.prop is located into /system/ and named "build.prop"
Sony Ericsson XPERIA x10 : fully working
Samsung Galaxy S2 : half working (file system is read-only...)
- How it's working ?
The script works generally in this way :
It downloads from your device your build.prop and creates two temporary backups.
Then, it opens one of the temporary backup into notepad, to let you edit all you want.
Once file closed/saved, the file is reconfigured automatically, then sent back to your device.
The script allows you next to keep, on wish, the remaining backup and to reboot your device.
- Is this safe ?
The script makes a backup of your build.prop every time you try to access it. There's also human-friendly log file to help you identify problems with ease.
There is also NO automatic upload to your device : the script will always ask you before if you want to upload the new build.prop to your device. Even if you upload it, backup is stored and can even be stored safely on your device for future use.
- Is this all automatic ?
Yes. The script makes backups by itself, reboot your device for you (if you wish), and of course change permissions. But don't worry : it will ask your approval for any important process
- The 3G tweak makes my connection unstable !
The Manager is based on my 3G+ enhancement script, using "Full Mode". In the original script, there is also a "Lite Mode" for some networks (like AT&T) I included in v1.3.
To make your network stable, the script will disable the two lines below :
ro.ril.enable.dtm=1 (will be turned to 0)
ro.ril.enable.a53=1 (will be turned to 0)
To get full details about the 3G+ tweak, check the thread :
http://forum.xda-developers.com/showthread.php?t=951765
Why is there "so many" different batch files ?
It's easier for me to improve/maintain the batch by splitting it into different functions. There's a main script, and subroutines called when needed.
Of course, all the subroutines, including addons, are programmed to be run only from main script. You can run any subroutine separately, but it will mostly crash and create useless files not being deleted. Always run the main script, and do no try to run separately subroutine - not dangerous, but 100% useless/buggy.
- It's not working.
* Make sure your device is :
** ROOTED,
** Full external access to system (su command) [if not, will drop errors like "Operations not permitted" or "file system is mounted read only")
** USB Debugging is enabled,
** Connected using USB and all USB drivers are installed/working.
* You might need administrative privileges in Windows to fully run the program.
* If you're running your device from recovery, you may need to mount /system/ folder before running the script (Partition tools > Mount /system).
- It's still not working.
* Drop a message in the official thread.
* If you get errors about file system Read only, try to run your device in Recovery mode, and fix permissions.
- Will the script create lots of files/make a big drive footprint ?
I hate programs creating lots of temp files. So, the script was developped to create files AND to clean/remove them all once everything is done. Even if it crashes without removing files, you just need to restart the script - it will clean all previous temporary files.
If ADB is run, it WILL be fully closed once everything is done. Server will be killed, then ADB process (named adb.exe) will be killed. Your system will be as clean as it was before running the script.
The script is of course fully portable : there's no installation needed. You can put the script where you want, but you just need to keep all script files/folders in the same folder.
In a future release, I'll add something to purge the log file.
- Which OS is supported ?
It's developped in Windows 7 x64. You should be able to fully run it on any 2000+ Windows NT OS.
As it is NT script, it will work only on Windows computer. It will also not work properly on pure DOS (it's using NT commands and Windows-related commands not included in older Windows NT systems, like NT4).
Report if you tested it on other Microsoft OS (NT 4, Windows 95, 98 or 2000, Dos 6.22...)
- I wanna contribute.
Just right click the .cmd/bat files, edit them with Notepad or anything you want
You can also send me a message (thread or PM) if you notice some piece of code I can improve with other commands (I don't know DOS commands enough )
v1.0 (11/5/2011) = initial release
v1.1 (13/5/2011) = removed BFC tags, updated error 2 (ADB get-state, to help you identify problem), removed 3G tweak returns error 3 if not present (addon = not necessary), added template.bat to create add-ons, improved launcher.bat (add-on primitive detection), added add-on installation detector (displays backup/reboot options only when add-on was installed), corrected folder "\" bug
v1.2 (13 may formely 14/5/2011) = added automated deleter/file checker for 3G+ tweak. Still early stage but looks to work. Automated batch thanks to http://www.dostips.com
v1.3 (16/5/2011) = added 3G+ enhancement lite mode (for networks like AT&T) and removed 1 step on auto deletion, fixed bug of false error when trying to download from device a build.prop.bak not existing, added management options to Backup (send local backup to device, delete backup on device), solved backup internal error
v1.4 (29/5/2011) = fixed window console size, enhanced menus, faster script closing, log file generator, several bugs fixed, enhanced help (readme in Notepad, direct open XDA thread in Firefox), added adb.exe process killer
v1.5 (6/6/2011) = added console title, fixed some menu bugs, updated Readme, weblinks now open in the default user browser, build.prop will now open in default notepad editor, improved interface, fixed unexpected exit bug, added contact me using default email (still experimental)
v1.6 (15/6/2011) = improved ADB process killing, deeply improved 3G tweak script with sed and no more TXT file, readme opens in your default editor, improved interface, updated template, unified common subroutines into BAKengine.bat, user-friendly explorer of build.prop (not great for now), deleted Substengine (deprecated), "0" in menues now refers to Go Back/Exit, improved missing engines detection, added general temp/log file purger/deleter ** To celebrate The Legend of Zelda series 25th Anniversary, my script is now tagged "Powered by Hyrule DOS"
DETAILLED 3G Addon update :
- detects presence of previous installation and files
- Sed command : fastest detection and subtitute of lines
- Optimized for fastest operation and fully clean build.prop file
- Several stuff...
External SED support thanks to GNU Utilities for win32 @ http://unxutils.sourceforge.net/
v1.7 (26/7/2011) = fixed no deletion of TEMP folder/files, fixed ADB command not found, new entries for XPlorer
Known bugs :
* (Main) Will not detect if build.prop.bak and build.prop.old are the same (not very important, I'll improve this later)
* Report anything you find
Developper/Advanced user addendum
(Write in progress)
Backup management
The script creates up to two backups, localed in main directory :
- build.prop.bak
- build.prop.old
Build.prop.old is generated if the script detects there's an existing build.prop.bak, to avoid accidental loss of it.
Build.prop.old is the final backup, and WILL BE DELETED if detected. The script manages backups like this :
1. If an existing build.prop.bak is present...
>> Script will detect for build.prop.old presence - if it exists, it will be deleted,
>> the build.prop.bak will be renamed to build.prop.old.
2. If there is no build.prop.bak detected...
>> Script will generate a build.prop.bak.
ADB Error detection
Error 2 (device not connected) works using a trick - it's not really related to device state.
In fact, the script will attempt to connect your device to download your build.prop. Once it is done - or not - the script checks if a local build.prop file was created. If it's not present, it means ADB encountered an error - about 90% because device is not connected - and will display error 2.
Keep in mind then there is small chance that your error does NOT come of device not connected : administrative privileges missing (don't allow the script to create the file), drivers buggy, ...)
Hi,
I cant use your WorkTool V1.6
It says ADB cmd not found.
v1.7 out, sorry for delay, I prepared it few days ago then I forgot to upload ^^
Really good work
Perceval from Hyrule said:
FAQ- Supported devices
It is first developped for Sony Ericsson XPERIA x10, but it should work on any Android device with these requirements :
* Rooted
* File system is mounted Read/Write.
* Build.prop is located into /system/ and named "build.prop"
Sony Ericsson XPERIA x10 : fully working
Samsung Galaxy S2 : half working (file system is read-only...)
- How it's working ?
The script works generally in this way :
It downloads from your device your build.prop and creates two temporary backups.
Then, it opens one of the temporary backup into notepad, to let you edit all you want.
Once file closed/saved, the file is reconfigured automatically, then sent back to your device.
The script allows you next to keep, on wish, the remaining backup and to reboot your device.
- Is this safe ?
The script makes a backup of your build.prop every time you try to access it. There's also human-friendly log file to help you identify problems with ease.
There is also NO automatic upload to your device : the script will always ask you before if you want to upload the new build.prop to your device. Even if you upload it, backup is stored and can even be stored safely on your device for future use.
- Is this all automatic ?
Yes. The script makes backups by itself, reboot your device for you (if you wish), and of course change permissions. But don't worry : it will ask your approval for any important process
- The 3G tweak makes my connection unstable !
The Manager is based on my 3G+ enhancement script, using "Full Mode". In the original script, there is also a "Lite Mode" for some networks (like AT&T) I included in v1.3.
To make your network stable, the script will disable the two lines below :
ro.ril.enable.dtm=1 (will be turned to 0)
ro.ril.enable.a53=1 (will be turned to 0)
To get full details about the 3G+ tweak, check the thread :
http://forum.xda-developers.com/showthread.php?t=951765
Why is there "so many" different batch files ?
It's easier for me to improve/maintain the batch by splitting it into different functions. There's a main script, and subroutines called when needed.
Of course, all the subroutines, including addons, are programmed to be run only from main script. You can run any subroutine separately, but it will mostly crash and create useless files not being deleted. Always run the main script, and do no try to run separately subroutine - not dangerous, but 100% useless/buggy.
- It's not working.
* Make sure your device is :
** ROOTED,
** Full external access to system (su command) [if not, will drop errors like "Operations not permitted" or "file system is mounted read only")
** USB Debugging is enabled,
** Connected using USB and all USB drivers are installed/working.
* You might need administrative privileges in Windows to fully run the program.
* If you're running your device from recovery, you may need to mount /system/ folder before running the script (Partition tools > Mount /system).
- It's still not working.
* Drop a message in the official thread.
* If you get errors about file system Read only, try to run your device in Recovery mode, and fix permissions.
- Will the script create lots of files/make a big drive footprint ?
I hate programs creating lots of temp files. So, the script was developped to create files AND to clean/remove them all once everything is done. Even if it crashes without removing files, you just need to restart the script - it will clean all previous temporary files.
If ADB is run, it WILL be fully closed once everything is done. Server will be killed, then ADB process (named adb.exe) will be killed. Your system will be as clean as it was before running the script.
The script is of course fully portable : there's no installation needed. You can put the script where you want, but you just need to keep all script files/folders in the same folder.
In a future release, I'll add something to purge the log file.
- Which OS is supported ?
It's developped in Windows 7 x64. You should be able to fully run it on any 2000+ Windows NT OS.
As it is NT script, it will work only on Windows computer. It will also not work properly on pure DOS (it's using NT commands and Windows-related commands not included in older Windows NT systems, like NT4).
Report if you tested it on other Microsoft OS (NT 4, Windows 95, 98 or 2000, Dos 6.22...)
- I wanna contribute.
Just right click the .cmd/bat files, edit them with Notepad or anything you want
You can also send me a message (thread or PM) if you notice some piece of code I can improve with other commands (I don't know DOS commands enough )
v1.0 (11/5/2011) = initial release
v1.1 (13/5/2011) = removed BFC tags, updated error 2 (ADB get-state, to help you identify problem), removed 3G tweak returns error 3 if not present (addon = not necessary), added template.bat to create add-ons, improved launcher.bat (add-on primitive detection), added add-on installation detector (displays backup/reboot options only when add-on was installed), corrected folder "\" bug
v1.2 (13 may formely 14/5/2011) = added automated deleter/file checker for 3G+ tweak. Still early stage but looks to work. Automated batch thanks to http://www.dostips.com
v1.3 (16/5/2011) = added 3G+ enhancement lite mode (for networks like AT&T) and removed 1 step on auto deletion, fixed bug of false error when trying to download from device a build.prop.bak not existing, added management options to Backup (send local backup to device, delete backup on device), solved backup internal error
v1.4 (29/5/2011) = fixed window console size, enhanced menus, faster script closing, log file generator, several bugs fixed, enhanced help (readme in Notepad, direct open XDA thread in Firefox), added adb.exe process killer
v1.5 (6/6/2011) = added console title, fixed some menu bugs, updated Readme, weblinks now open in the default user browser, build.prop will now open in default notepad editor, improved interface, fixed unexpected exit bug, added contact me using default email (still experimental)
v1.6 (15/6/2011) = improved ADB process killing, deeply improved 3G tweak script with sed and no more TXT file, readme opens in your default editor, improved interface, updated template, unified common subroutines into BAKengine.bat, user-friendly explorer of build.prop (not great for now), deleted Substengine (deprecated), "0" in menues now refers to Go Back/Exit, improved missing engines detection, added general temp/log file purger/deleter ** To celebrate The Legend of Zelda series 25th Anniversary, my script is now tagged "Powered by Hyrule DOS"
DETAILLED 3G Addon update :
- detects presence of previous installation and files
- Sed command : fastest detection and subtitute of lines
- Optimized for fastest operation and fully clean build.prop file
- Several stuff...
External SED support thanks to GNU Utilities for win32 @ http://unxutils.sourceforge.net/
v1.7 (26/7/2011) = fixed no deletion of TEMP folder/files, fixed ADB command not found, new entries for XPlorer
Known bugs :
* (Main) Will not detect if build.prop.bak and build.prop.old are the same (not very important, I'll improve this later)
* Report anything you find
Click to expand...
Click to collapse
Hey mate...
lovely piece of work..!
saved me hours at my work...
thanks a lot works flawlessly on
sony xperia tipo dual with cm 10
Ur da bomb
As you probably already know, you are DA BOMB, BABY!
I just [snicker] used your tool to save my rather idiotic...er, 'brain' from suffering through a dumb, hard night re-flashing SlimKat 4.4.2 back onto my LG Optimus G e970 just to fix something I should've never done to begin with (change screen density to make it easier to read, of course, but without really knowing what I was doing)...
aherm...well, anyway, here I sit at a pre-midnight hour thanking you profusely, sir, because, as I said at the start...
UR DA BOMB!!!
Here's hoping you get bored a lot more often...it's a keeper, fer sure.:victory:
Good work dude... Nice toolkit, loved it very much... I am integrating your tool into my new upcoming toolkit. Dont worry i am not gonna steal it, will just use it. Will surely give you proper credits for that
Does this work with the stock recovery without root?
My device: Xperia XA2
thanks for this useful helper. i know how to modify build.prop - thats not the reason why i came here. what i don't know is the meaning of all this different entries in build.prop for example ro.expect.recovery_id - which there was a catalog with information about included in a build.prop Tweak GUI
sorry but the program cant detect/ acces build.prop
my device is rooted, has debugging on and is connected via USB
plz help
Use wisely!!
If you plan to use it, please share anything that might be missing or any step taken to resolve bootloops, FC's, etc.
:good: Thanks and Credits to: :good:
Peteragent5- Original Thread:
http://forum.xda-developers.com/showthread.php?t=1598713
GalaxyUser for his great contribution on this tutorial!
[Disclaimer]
I'm not responsible for any problems this may cause on your phone.
And I will repeat this.
I'm not responsible for any problems this may cause on your phone.
!!!YOU DO THIS UNDER YOUR OWN RISK!!!
-----------------!!!!IMPORTANT!!!!-----------------
This tutorial is not meant to port the following Touchwizz, Sense, Motoblur or from different vendors
If your Device is not from the same manufacturer, unpack the kernel and edit the BOOTCLASSPATH in init.rc to match the BASE kernel and then repack Kernel
You can try, but it's under you own risk.
-----------------!!!!IMPORTANT!!!!-----------------
IMPORTANT:
1. You must know if your Device is Armv7, Armv6, or Armv5. YOUR BASE AND PORTED MUST BE THE SAME CPU!!
''''''Nexus S is ARMv7''''''
Example: SGS I9000 can be used as PORT.List of Devices CPU:
http://forum.xda-developers.com/showthread.php?t=1596800
2. If your BASE has problems, then your ported ROM is going to have the same problems.
3. Make sure both PORTED and BASE are on the same Android Version. As for what I know, you cannot Port ROM on GB using Base on ICS and viceversa.
So let's get started geeks and trolls:
[PROCEDURE]
Step 1. ROM Download
Download ROM you want to 'PORT' and download ROM you want to use as 'BASE'.
Step 2. Unzip
Unzip both PORT and BASE on separate folders (Just to keep it clean).
Step 3. [OPTIONAL] Backup important files
Make a backup of the following files from both PORT and Base (This is just in case you have the original one)(modify the name with something unique to the ROM - add it at the end maybe):
/system/lib/libandroid_runtime.so
/META-INF/com/google/android/updater-script
/system/build.prop
Step 4. Backup and copy important Apps
From BASE, backup the following from /system/app:
stk.apk
vpnservices.apk
camera.apk
bluetooth.apk
VpnDialogs.apk
nfc.apk
tag.apk
Add these apps into PORTED /system/app folder.
Step 5. Inside Ported
Remove kernel:
boot.img | zImage | kernel.sin | etc...
Remove folders on PORTED /system:
cameradata
tts
usr
vendor
modules
/etc/wifi
Now you get 2 options:
Delete bin & xbin & lib folder, but keep libandroid_runtime.so inside /system/lib
Keep bin & xbin & lib folder
Explanation:
If PORTED has no tweaks or addons to those folders.
If PORTED has tweaks and addons.
Remove every folder inside /system/etc except:
init.d
permissions
license
Remove the following inside META-INF:
CERT.RSA
CERT.SF
MANIFEST.MF
Remove: META-INF/com/google/android/update-binary
Step 6. Inside Base
Move kernel to PORTED:
boot.img | zImage | kernel.sin | etc...
Delete libandroid_runtime.so inside /system/lib
Move the following inside /system to PORTED:
(If prompted, select YES to copy and Replace all)
cameradata
bin
lib
tts
usr
vendor
firmware
modules
wifi
xbin
(If prompted, select YES to copy and Replace all)
Move everything inside /system/etc
To: PORTED's /system/etc
(If prompted, select YES to copy and Replace all)
Move: META-INF/com/google/android/update-binary
To: PORTED's META-INF/com/google/android/
For ICS & Newer:
Move the following inside /system/media to PORTED's media:
LMprec_508.emd
PFFprec_600.emd
Step 7. Build.prop edition
Open /system/build.prop from both PORTED and BASE with Notepad++ (or any other text editor you like)
Edit PORTED build.prop to match BASES's build.prop.
!!!IMPORTANT!!! - Make sure the following fields on the PORTED matches your BASE fields:
ro.build.description=
ro.build.fingerprint=
ROM WILL NOT boot without this.
Most of the options that would need to be modified are from the 'build properties' section.
Copy & Replace the following:
ro.modversion
ro.cm.version
ro.config.ringtone
ro.config.notification_sound
ro.config.alarm_alert
ro.config.sms_received_sound
ro.config.sms_delivered_sound
persist.sys.themeId
persist.sys.themePackageName
and anything similar to that, to: BASE's build.prop
For MIUI:
Add & Make sure the following values are like this:
ro.build.id=MIUI
ro.build.display.id=MIUI x.x.x
ro.build.version.incremental=x.x.x
ro.config.ringtone=MI.ogg
For Lewa OS:
Add & Make sure the following values are like this:
ro.build.display.id=LeWa_ROM_DeviceNickname_xx.xx.xx
ro.lewa.version=LeWa_ROM_DeviceNickname_xx.xx.xx
ro.lewa.device=DeviceNickname
ro.lewa.swapper.part_path=PORTED's_Value
ro.lewa.swapper.flash_swappiness=PORTED's_Value
ro.lewa.swapper.sd_swappiness=PORTED's_Value
ro.error.receiver.system.apps=com.lewa.fc
ro.error.receiver.default=com.lewa.fc
Make sure the following is for your Device:
rild.libpath=
rild.libargs=
Inside BASE:
Highlight from: ro.build.tags=
to: # ADDITIONAL_BUILD_PROPERTIES
Copy & Replace that highlighted part to: PORTED's build.prop's highlighted part
Copy everything from: # ADDITIONAL_BUILD_PROPERTIES
To: the end of the file
Paste it to PORTED's build.prop
Save PORTED build.prop.
For XPERIA devices:
The whole build.prop is untidy and filled with tweaks and addons.
To edit an XPERIA build.prop you really just need to use your common sense.
Make sure you follow the above and just decide on your own on what to do
For HTC devices (Sense):
The whole build.prop is filled with tweaks, addons and extra libs values.
To edit an HTC build.prop you really just need to use your common sense.
Make sure you follow the above and just decide on your own on what to do
Step 8. META-INF updater-script edition
Inside BASE:
Move the following, to PORTED:
(If prompted, select YES to copy and Replace all)
META-INF/com/google/android/update-binary
META-INF/com/android/metadata
META-INF/com/android/otacert
Open /META-INF/com/google/android/updater-script from both PORT and BASE.
8.a. Modify PORTED updater-script
8.b. Replace 'assert' line in PORTED with the one on BASE.
'assert' will verify 'build.prop' values to make sure you are flashing a ROM meant for your device.
Make sure any 'assert' check matches your BASE build.prop field.
If this check fails, you will most likely get CWM error status 7 (if I'm not mistaken)
8.c. Replace 'format' and 'mount' lines in PORTED with the ones on BASE. Should be like this:
format("ext4", "EMMC", "/dev/block/platform/s3c-sdhci.0/by-name/system", "0");
mount("ext4", "EMMC", "/dev/block/platform/s3c-sdhci.0/by-name/system", "/system");
This is a HIGHLY important step, so don't miss this step.
8.d. If 'retouch_binaries' exists on BASE, copy line into PORTED file where SYMLINKS ends. Replace if necessary.
8.e. DO NOT CHANGE ANY SYMLINK on PORTED.
8.f. Change/Edit/Add 'set_perm' from BASE to PORTED (Take note of the added set_perms & set_perm_recursives that PORTED added. Then replace all set_perm and set_perm_recursive from BASE to PORTED. Put back in the noted set_perms & set_perm_recursive you wrote down, to PORTED's updater-script(If the updater-script in PORTED is modded to have tweaks & addons do the set_perms procedure above)).
8.g. Modify any 'ui_print' as you wish.
8.h. The installation of the kernel (Something like: assert(package_extract_file("boot.img",)
8.i. Save PORTED updater-script.
8.j. Now use BASE's entire META-INF Folder. Copy it to PORTED (Do not replace the updater-script we just modified).
ALWAYS use COMMON SENSE to edit build.prop and updater-script to avoid bricks!
For MIUI v4:
Add the following values to PORTED:
set_perm(0, 0, 06755, "/system/xbin/invoke-as");
set_perm(0, 0, 0755, "/system/lib/liblbesec.so");
Step 9. Porting from a different Manufacturer
If you are porting from a different manufacturer like, HTC or Sony, you have to check the kernel from them.
Unpack the kernel from PORTED
Unpack your Device's kernel
Open PORTED's init.rc
Replace the BOOTCLASSPATH from PORTED's init.rc to BASE's init.rc
Compare the two files, and addon to your Kernel's init.rc
Packup/Repack your Kernel
Step 10. Clean your workspace
Double check the ROM if it has any leftover files or folders you need to modify or edit.
And delete any file or folder if it has nothing to do with your Device.
Step 11. Assure Boot Image
Make sure you replace the Kernel with one compiled for your Device.
This needs to be on '/' and named boot.img
Step 12. Add what you want
If you like to add special apps, or update the existing ones like Superuser and it's Binaries, Busybox, and more, you can do it now!
Maybe add Beats Audio, XLoud, MegaBeatsBass?? Your Choice!! Goooo crazy!
Step 13. Zip your ROM and tranfer to SDCARD
PORTED is your final ROM.
Now zip your ROM Workspace (You can compress the zip).
You can also sign your ROM but it's not necessary.
But if your recovery only reads signed zips, then sign your ROM.
Step 14. Don't worry, be HAPPY!!
If you encounter any problems during flash, boot, or processes FC'ing:
ADB Logcat and DDMS are your FRIENDS....and maybe Google.
Happy Porting!!!
How to Debug / ADB & DDMS
ADB:
1. Connect device via USB.
2. Make sure Debugging is ON.
3. Open CMD Prompt and Type:
adb logcat -v long
DDMS:
1. Connect device via USB.
2. Make sure Debugging is ON.
3. Open CMD Prompt and Type:
ddms
DDMS window will open.
4. Select your device on the top left panel.
5. You can see all messages now being logged. For any problems, where it says 'verbose' choose 'Error' on the dropdown box You can also use 'warn'.
NOTE: I am still swallowing all of this information myself. Please do NOT expect me to have all answers. In fact, I will probably have a few (maybe one or two ).
Hopefully we can get input from more knowledgeable people when it comes to Logcats and DDMS errors.
Other Guides / General Info / Common Errors
JB Port Thread:
http://forum.xda-developers.com/showthread.php?t=1739561
Swamp Goblin Nexus S Porting Thread:
http://forum.xda-developers.com/showthread.php?t=1603363
MIUIv4 Guide:
http://forum.xda-developers.com/showthread.php?t=1499411 - Thanks to proxuser!!
Logcat Help:
http://www.xda-developers.com/android/help-your-developers-pull-a-logcat-when-issues-arise/
http://www.xda-developers.com/xda-t...an-ports-and-helping-devs-with-logcat-xda-tv/
Screen resolution does matter. LCD density in the build.prop needs to match your Device's LCD density.
For the best Port result, your Ported and Base should be the same MDPI, HDPI, or LDPI
ldpi - Resources for low-density (ldpi) screens - 120dpi
mdpi - Resources for medium-density (mdpi) screens - 160dpi - This is the baseline density
hdpi - Resources for high-density (hdpi) screens - 240dpi
xhdpi - Resources for extra high-density (xhdpi) screens - 320dpi
Build.Prop Info:
http://forum.xda-developers.com/showthread.php?t=1639104 - Thanks to H M Judge
http://forum.xda-developers.com/showthread.php?t=1151608 - Thanks to Master&Slave
Want to learn how to theme???
http://forum.xda-developers.com/showthread.php?t=916814 - Thanks to theimpaler747
Common Errors:
1. When flashing ROM it says Installation aborted status (6)
Status 6 ussually means some syntax error in updater-script, check it, maybe you missed a ; or " somewhere.
2. When flashing ROM it says Installation aborted status (7)
Check 'assert' on updater-script and make sure it matches build.prop fields.
3. On Logcat:
E/JNIHelp ( 166): Native registration unable to find class 'android/debug/JNITest', aborting
F/libc ( 166): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)
Usually means a Framework.jar issue.....don't ask me what to do lol
4. FIX Tethering (CM7)
Decompile framework-res.apk, edit theses to files:
--[arrays.xml]
Quote:
Change the correspondant lines with this:
<string-array name="config_tether_usb_regexs">
<item>usb0</item>
</string-array>
<string-array name="config_tether_wifi_regexs">
<item>wl0.1</item>
</string-array>
<array name="config_tether_dhcp_range" />
<string-array name="config_tether_upstream_regexs">
<item>rmnet\\d</item>
<item>eth\\d</item>
</string-array>
--[bools.xml]
Quote:
<bool name="config_tether_dun_required">false</boolRecompile framework-res.apk
i am porting rom from galaxy S(hdpi) to galaxy ace plus(mdpi).... do i need to re-size system apps and frameworks or something else.... what if i change lcd density will it work... and also which should i port first cm7 or miui... i get sucked or phone restarts again and again in my miui port....
or else can you suggest me any galaxy phone which is arm7 and have mdpi display..... i cannot find it...
Oogway13 said:
MIUIv4 Guide:
http://forum.xda-developers.com/showthread.php?t=1499411 - Thanks to proxuser!!
Logcat Help:
http://www.xda-developers.com/android/help-your-developers-pull-a-logcat-when-issues-arise/
http://www.xda-developers.com/xda-t...an-ports-and-helping-devs-with-logcat-xda-tv/
Screen resolution does matter. LCD density in the build.prop needs to match your Device's LCD density.
For the best Port result, your Ported and Base should be the same MDPI, HDPI, or LDPI
Common Errors:
When flashing ROM it says Installation aborted status (6)
Status 6 ussually means some syntax error in updater-script, check it, maybe you missed a ; or " somewhere.
When flashing ROM it says Installation aborted status (7)
Check 'assert' on updater-script and make sure it matches build.prop fields.
On Logcat:
E/JNIHelp ( 166): Native registration unable to find class 'android/debug/JNITest', aborting
F/libc ( 166): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)
Usually means a Framework.jar issue.....don't ask me what to do lol
Click to expand...
Click to collapse
For what I know, you cannot port from different densities. But, there is a build.prop option:
ro.sf.lcd_density=
You can try setting this value to the one you want.
For the CM7, MIUI question, I would start with CM7 since MIUI ports require some other dependencies.
This thread can provide you insight of all ARM devices:
http://forum.xda-developers.com/showthread.php?t=1596800
My build.prop dont have this line...should i add it... sry fir the noob question...
I saw all devices in armv7 none have hvgi....
Sent from my GT-S7500 using xda premium
Yes, you can add it (make sure you backup the original one).
But, be aware that, for optimal conditions, both devices must be HDPI/MDPI or else you must resize everything.
As a side note:
ldpi Resources for low-density (ldpi) screens (~120dpi).
mdpi Resources for medium-density (mdpi) screens (~160dpi). (This is the baseline density.)
hdpi Resources for high-density (hdpi) screens (~240dpi).
xhdpi Resources for extra high-density (xhdpi) screens (~320dpi).
The only part of this guide I'm having part with is the build.prop. Should I be making the build.prop in ported match EXACTLY with the build.prop in my base? Such as deleting lines in ported that aren't in base, changing properties after the ='s in ported that are different from base, and adding lines that aren't in ported but in base? I know it says use common sense when editing the build.prop, and my common sense is telling me to just change properties that relate to the device. Such as model, brand, name, device, board, product, characteristics to nosdcard(nexus s has none), adding ro.cm.device=crespo after characteristics, board platform...Am I right in thinking that or just horribly wrong? Help me please. Lol.
Well, all product info own to Nexus S have to be changed (build properties section).
Now, some other options within this file may be tweaks added by the DEV on the PORTED ROM. I cannot speak for all setting on this file, but you can check the links for build.prop on the 2nd post.
Here's where common sense come into play. If you see any setting that may not apply to Nexus S, remove it!
Do you have both build.props? What error do you receive on CWM when flashing? Is your 'Assert' on META/INF calling the right information on build.prop?
Are you debugging via Logcat or DDMS?
I have both build.props.
In CWM, upon flashing, I get the following output:
Finding update package...
Opening update package...
Installing update...
Installation aborted.
This is my assert lines. (Is the position of the assert supposed to be before or after all the symlinks and set_perms?):
assert(getprop("ro.product.device") == "crespo" ||
getprop("ro.build.product") == "crespo");
And for some reason, I can't get my phone to connect to adb. Would updating my bootloader version have anything to do with this? Possibly the rom? I have drivers installed and windows recognizes my device, just not adb.
So lets say you wanted to port a GSM nexus S ROM to the 4G. What is the main folder/whatever that would allow the 4G unit to get service after the port?
DefinitiveX said:
I have both build.props.
In CWM, upon flashing, I get the following output:
Finding update package...
Opening update package...
Installing update...
Installation aborted.
This is my assert lines. (Is the position of the assert supposed to be before or after all the symlinks and set_perms?):
assert(getprop("ro.product.device") == "crespo" ||
getprop("ro.build.product") == "crespo");
And for some reason, I can't get my phone to connect to adb. Would updating my bootloader version have anything to do with this? Possibly the rom? I have drivers installed and windows recognizes my device, just not adb.
Click to expand...
Click to collapse
Assert should be the first lines on your updater-script. What the 'assert' does is make sure you don't flash a ROM which is not meant for your device. So, this basically checks a few stuff on the build.prop.
In your case, it checks the following fields on the build.prop: ro.product.device= & ro.build.product=
Make sure those fields are 'crespo' (without quotes).
For the ADB issue, if 'adb devices' doesn't returns anything, then you might need to update your drivers.
NYYFan325 said:
So lets say you wanted to port a GSM nexus S ROM to the 4G. What is the main folder/whatever that would allow the 4G unit to get service after the port?
Click to expand...
Click to collapse
To be honest, I don't know, but all of these files are left untouched on your base. Notice that on the port process, we modify apps/framework/fonts/media and other files, and leave most of the base with the original files.
Oogway13 said:
To be honest, I don't know, but all of these files are left untouched on your base. Notice that on the port process, we modify apps/framework/fonts/media and other files, and leave most of the base with the original files.
Click to expand...
Click to collapse
Yeah I found it last night after some digging lol
NYYFan325 said:
Yeah I found it last night after some digging lol
Click to expand...
Click to collapse
Were you able to port the GSM ROM?
Oogway13 said:
Were you able to port the GSM ROM?
Click to expand...
Click to collapse
Yeah, I got it booting with service and wifi and all that good stuff. I think I left some stuff out though I was having some very minor issues. Pretty sure I missed some libs. Not bad for my first time though
Oogway13 said:
Assert should be the first lines on your updater-script. What the 'assert' does is make sure you don't flash a ROM which is not meant for your device. So, this basically checks a few stuff on the build.prop.
In your case, it checks the following fields on the build.prop: ro.product.device= & ro.build.product=
Make sure those fields are 'crespo' (without quotes).
For the ADB issue, if 'adb devices' doesn't returns anything, then you might need to update your drivers.
Click to expand...
Click to collapse
I downloaded samsung drivers and ran the intall program, tried to update drivers manually with googles usb drivers but couldn't find my device listed in the device manager, even though windows recognizes the device.
DefinitiveX said:
I downloaded samsung drivers and ran the intall program, tried to update drivers manually with googles usb drivers but couldn't find my device listed in the device manager, even though windows recognizes the device.
Click to expand...
Click to collapse
Which guide are you using for this?
http://wiki.cyanogenmod.com/wiki/Howto:_Install_the_Android_SDK
Just in case, you have USB Debugging ON right?
NYYFan325 said:
Yeah, I got it booting with service and wifi and all that good stuff. I think I left some stuff out though I was having some very minor issues. Pretty sure I missed some libs. Not bad for my first time though
Click to expand...
Click to collapse
Niiiice!! If you have any suggestions for the guide, just let me know :silly::good:
Oogway13 said:
Which guide are you using for this?
http://wiki.cyanogenmod.com/wiki/Howto:_Install_the_Android_SDK
Just in case, you have USB Debugging ON right?
Click to expand...
Click to collapse
Wasn't using a guide, actually, unless the usb drivers were in a guide. I just searched on google for the drivers, went to the page, and downloaded them. I will check out that guide though. And yes, I always have USB Debugging enabled on my device.
And just so I'm sure...You said that the assert goes before everything in the updater-script, so, before or after the ui_prints? I currently have it positioned before.
PORTING ROMS FOR MEDIATEK
FEATURE OF THIS GUIDE- NOOB -> EXPERT
I DONT KNOW THE METHOD I USE TO PORT WILL WORK FOR OTHER CHIPSET DEVICES OR NOT AS I ONLY USED MEDIATEK DEVICE.
IF YOU ARE IN A HURRY THEN SEE HERE MY 1-MIN PORTING GUIDE.
AND YOU CAN FIND HERE MY TRICKY CONCEPT- "X" TO SAVE MONEY,TIME,NET DATA.
Credits
@dsixda for awesome android kitchen @rua1 for Mtk Dorid Tools @knzo for tweaks @https://www.otaupdatecenter.pro/ and their team for OTA. @tech mashido As Helper
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
WORK BEGINS
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
THINGS NEEDED
(INSTALL BELOW THINGS AS PER YOUR OS BIT VERSION,IF YOU HAVE 32 BIT OS THEN INSTALL 32 BIT STUFFS AND IF YOU HAVE 64 BIT OS THEN CHOOSE 64 BIT STUFFS.
WIndows Running PC or Laptop.
JAVA - Download
Cygwin - Download
7zip Compressor-Download
Notepad++ -Download
Android Kitchen- Download
Time(as per you how much take to understand)
Your Base Rom(stock Rom,in any format-CWM flashable or SP_tools Flashable,Prefer to have Both)
CWM Recovery
SD card & Card Reader.(some phones do not have SD slot so no worry for them,i have alternative way)
APKTOOL- DOWNLOAD
SP_Flash Tools to Unbrick In case Device Get Bricked- Download
SETTING UP IMPORTANT THINGS FIRST
JAVA
Download Java From Above link as per your OS type.
Install it by running its setup like normal softwares.
CYGWIN
Download Cygwin From Above link.
Extract the Zip
By default it will be installed at c:\cygwin .i also recommend to install at default location.
Run Setup and Select "Install from Local Directory"
Then is will ask for packages location.Verify it.
Hit next-next and finish at the end.
Now you see a Cygwin folder under "C" drive and a shortcut Icon at desktop.
*For some 64 BIT users this method might not work,they can download setup from here-Download & install it from internet instead from local packages and select all packages during installation.
7ZiP
Download 7Zip From Above link as per your OS type.
Install it by running its setup like normal softwares.
Notepad++
Download Notepad++ From Above link as per your OS type.
Install it by running its setup like normal softwares.
dsixda's Android Kitchen
Download dsixda's Android Kitchen From Above link.
Extract it and then it will be like this- Android-Kitchen-0.224\Android-Kitchen-0.224\orgianal_update,tools etc....
Now open Android-Kitchen-0.224 folder and you will again find Android-Kitchen-0.224 folder,then rename it to only " kitchen " (small letters).
Now directory will look like this- Android-Kitchen-0.224\kitchen\orgianal_update,tools etc....
Now copy that kitchen folder which we renamed and paste to c:\cygwin\home"your_username""paste here"
Now your cygwin directory will look like this- C:\cygwin\home\your_username\kitchen\orignal_update,tools,etc.....
To check Kitchen is working,open cygwin from desktop and type - "cd kitchen" and hit enter(small letters).
If no error shown then you have sucessfully installed it or if error like- bash:cd :kitchen:No such file or dirctory hen you should check above steps again.
>>OPENING KITCHEN- open cygwin,type "cd kitchen" hit enter,now type " ./menu " and hit enter.Now kitchen will load.
PORTING CWM RECOVERY(PORT IF YOUR DEVICE DO NOT HAVE IT)- ROOT REQUIRE
Download and install ADB drivers on PC first.DOWNLOAD
Get MTK Droid tools From Here and Extract-HERE
Now go to developers option and enable USB debugging.If you cant find Developers option then go to settings/about Phone and press 7 times on BUILD NUMBER then you will see Developers option under settings.
Open MTK Droid tools on pc and then plug your device(turned on) via usb cable.Now the tool will recognise your device and connect to it(if asked for root permission on device then grant).
If the colour indicator in the bottom left corner is green in MTK Droid Tools,then you already have root shell,and can go on to the next step, if it is yellow, click on the root button at the bottom, and wait for the progress bar, if the indicator stays yellow, or you get an error message, this probably means you do not have Busybox installed, you can install it from the Google play store. When the indicator turns to green you have root shell which is necessary for this operation.
Now click on 'root,backup,recovery' and then select 'to use boot from phone'
Now click on 'recovery and boot'
Then you will see a dialogue box will appear asking if you want to 'make cwm recovery automatically' click yes.
The tool will then create the recovery and then another dialogue box will appear asking to 'install created recovery to phone', click yes.
Now you reboot into recovery mode and check that it is working fine or not.
You can find generated cwm recovery under MTK Droid Tools location.
If you want to revert to stock recovery then take recovery.img from your stock rom(sp_tools) and paste into sd card.And then install mobileuncletools from playstore and click on update recovery and select your stock recovery from SD.Same method for installing CWM recovery.
WHICH ROMS YOU CAN PORT
Port rom should be of same android version as your stock rom.Like if your stock rom is 4.2 then you should only try with 4.2.In some cased you can port higher versions like kikat too,it will require Custom kernel but we are skipping that.
The device from you porting should have same chipset,like if your device is MT6589 then you shoul only try with MT6589 chip-sets.You can port from MT6589T to MT6589 or MT659M but you cannot port from MT6592.
Choose the port rom from most close specification device,like screen size,screen resolution,dual-sim,etc....higher resolution to lower resolution resolution or lower to higher can be ported but not all boots up.
Some Sites To get Port Rom:-
anzhuodiy.com
romzj.com
dashi.com
shendu.com
needrom.com
Porting begins
MAKING PORTING ENVIRONMENT
Registering Your Device To Kitchen:-This step will help to write updater script automatically.
Open kitchen and select option 0(advance options) and then select option 12(tools for unpack and repack boot.img etc.) and press "a"(Extract kernel+ramdisk from boot.img,recovery.img etc.) and hit enter.
Now a folder will be created Under kitcehn directory named like this- bootimg_040714_132352
Now copy your CWM recovery.img for your device to this folder and check that the name must be - recovery.img if not then rename it. and hit enter in kitchen terminal.It will extract your recovery in that folder.
Open up boot.img-ramdisk folder, and look for /system/etc/recovery.fstab or /etc/recovery.fstab or similar FSTAB file location. Open this file by notepad++ to find the mount points.
Download below file and paste it to C:\cygwin\home\username\kitchen\tools\edify_defs .Now rename it to your device code name.Mine is A110Q so i used this file. You can use as your choice also.
Then open this file and recovery.fstab with notepad++ and compare and replace mount points and save it.Means copy mount points from recovery.fstab and paste/replace into Your device codenamed file.
Now if you done all above steps right then kitchen will make updater script for you.
If you porting for Micromax A110Q then just Download the below File and paste it.No need to edit.Just paste it.
>>>>>>Micromax A110Q file - http://d-h.st/Qa5
>>>>>>IF you have any confusion or you are unable to create this file then PM me your recovery.fstab file and i will make it.
GET BOTH ROMS- STOCK AND PORT
STOCK-Your stock rom which was provided by device manufacturer.
PORT- The Rom you selected to port after comparing your device to port device.
GETTING STOCK ROM SYSTEM FOLDER
IF your Stock ROM is in already in form of CWM flashable zip then create a Stock Folder in any drive of Computer and extract it for further Use.
Basic Strurture od CWM FLASHABLE ZIPs
META-INF
SYSTEM
DATA
boot.img
IF YOUR ROM IS SP_TOOLS FLASHABLE THEN DO THESE TO EXTRACT SYSTEM FOLDER FROM IT:-
Basically IN SP_TOOLS flashable zips the folder structure is-
DATABASE
boot.img
cache.img
EBR1
EBR2
IK.bin
logo.bin
MBR
MT65xx_Android_scatter_emmc.txt
Preloaded_xxxxxx.bin
recovery.img
secro.img
system.mg
userdata.img
[STEPS]
Extract system.img from stock rom zip to C;\cygwin\home\username\kitchen\original_update
*You should add kitchen folder to favorites panel in my computer as you will be using this folder very frequent.
Now open cygwin,type "cd kitchen" hit enter,now press- " ./menu " then android kitchen will load with lots of functions numbering from 1 to ...
Press 1 to setup working folder now again hit Enter.Now it will ask you to choose an option to select working folder.Select system.img one folder by pressing its value and hitting enter.
Now it will ask about changing working folder name,leave it as default and hit enter.So kitchen will now start copying rom to working folder.
After Copying files it will auto prompt and open Ext2Explore application.In some cases it will show that error message that "unable to read disk,please make sure you are running appliacation with administrative rights."But don't worry,click ok.
Now after Ext2Explore opened,click on "FILE" on upper left corner and click on "OPEN IMAGE".Now browse to kitchen directory and go through newly created working folder and you will find "ext4_system.img" under system folder.Select it.
Right click on file selected in Ext2Explore and Click on SAVE,now browse to same folder where "ext4_system.img" was.Means newly created working folder/system under kitchen directory.
Then it will extract "ext4_system.img" to same folder.After finishing extraction close the Ext2Explore application.Now hit Enter in kitchen,again it will say "warning,no boot.img found" .Do not worry,HIT ENTER and go with default.
It will ask to view Rom info,you can skit this.
So finally you got system folder under working folder.So copy that system folder to any drive and rename it to Stock rom folder for further use.
[TIP:-]
>>IF your Rom is odexed then you should deodexed it before copying to any other drive for further use.<<
HOW TO CHECK THE ROM IS ODEXED:-
GO TO SYSTEM/APP and SYSTEM/FRAMEWORK folder and see that for every file there is clone file ending with .odex .If there is then your rom is odexed.
WHAT IS DEMAERIT OF ODEXED ROM FOR DEVELOPERS-
You will not able to theme and modify your rom if system and framework is odexed so better deodex the rom.Deodexing will combine file and its clone .odex to one unit.
DEODEXING:-
AFTER SETTING UP WORKING FOLDER AND DOING ALL ABOVE STEPS,now hit 0 in kithcen and select 11 option and hit enter.
IT will show number of odex files in your Rom.Now Select "b" option to deodexing all files,it will take some time.
After done,it will show that "0" files left odexed in Rom,now exit kitchen and Now you should copy your system folder to any drive for furter use.
GETTING STOCK ROM BOOT.IMG EXTRACTED
[STEPS]
Now open Kitchen and select 0(advance options) and Hit enter,now select option 12(tools for unpack and repack boot.img etc.)
Under 12th option,press "a"(Extract kernel+ramdisk from boot.img,recovery.img etc.) and hit Enter
Now a folder will be created Under kitcehn directory named like this- bootimg_040714_132352 Now copy your boot.img and paste into this folder.
Now switch to Kitchen Terminal and press Enter.Then it will do some process and extract your boot.img,Now copy that folder and save it to any drive and Rename it to stock boot for further use.
NOW DOWNLOAD PORT ROM YOU CHOOSED TO PORT AND MOVE TO NEXT STEP BELOW.
PORTING
PORTING
>>>>Follow STEP I if you have port rom flashable via cwm.To check that your rom is flashable vai cwm see above post for structure.Those who having SP Tools flashable port rom follow StepII directly.<<<<
First we will port and check that rom boots or not by simple way,then if it boots then we will modify it and tweak it by using kithcen.Or you can skip this step I and directly follow step II but you have to do almost all things from step I in Step II except modifying updater script.If you do these things in step I then no need to do in Step II.
STEP I
[*]Make a folder and name it as you want and copy and paste your port rom zip in it,means make a clone file of it and we will be working with clone zip,always keep in mind.I said to copy paste as if your rom did not boot up then you have a backup of clean port rom.
[*]Now create a folder under original update of kitchen- " WORKING_XXXX "
[*]Then open zip using 7zip(make 7zip is as default app) and drag drop boot.img to " WORKING_XXXX " folder.Now Open kitchen and Press 1 to setup working Folder.And go with default in all steps forward.(keep 7zip opened,you will need to drag back boot.img in it)
[*]After working folder setuped.Now press 0 for advance option and hit enter.Now press 12 and hit enter.Now you press "w" to extract boot.img from working folder.
[*]After sucessful extraction you will find a folder under kitchen named BOOT EXTRACTED.
[*]Now you have to copy zImage from stock boot extracted folder(which was created by you in second post last step) to this BOOT EXTRACTED folder and replace it.
[*]Then switch to kitchen and press "b" to build boot.img from BOOT EXTRACTED folder then after repacking boot.img finish,you have to drag and drop only boot.img(kitchen/working folder)(not meta-inf) to port rom zip.
[*]Now Open System Folder In port Zip and drag drop build.prop file out of it to anywhere you wish.
[*]Now edit it with Notepad++.
[*]Add this line if you are porting from a higher resolution device- ro.sf.lcd.density=220 .Change its value after rom boots as to your display resolution.If after rom boots up and everything looking large then reduce the value and if looking small then increase it.
[*]You can Edit These Values as desired:-
Code:
ro.build.id=
ro.build.display.id=
ro.custom.build.version=
ro.build.version.release=This is Andriod version That Displays in Settings
ro.product.model=
ro.product.brand=
ro.product.name=
ro.product.device=
ro.product.manufacturer=
ro.build.bluetooth.name=
[*]EDIT BELOW LINES TO SET YOUR TIMEZONE AND AREA REGION.You can find your default details in your stock rom's build.prop which you extracted earlier.
Code:
ro.product.locale.language=(en for English,ru for Russian and other similar codes for other language)
ro.product.locale.region=(us for usa, IN for india etc.)
persist.sys.timezone=( Asia/kolkata for india,Asia/... different for different regions)
[*]Now after editing done drag build.prop to port zip.
[*]Now keep opened port zip one side and open stock rom system folder which we extracted in post 2.
[*]Open System/etc/firmware in both zip and stock folder.Now drag modem.img from stock folder to zip and drop it.
[*]Now head to lib folder in both.Here you have to drag and drop libcamercustom.so file to port zip.
[*]Go to system/lib/modules now,here drag and drop mtk_stp_wmt.ko file to port zip.If rom did not boots forward then you should drag and drop whole modules folder under system/lib of port zip.
[*]Go to usr/keylayout in both and drag drop Generic.kl file from stock to port zip.
[*]Lastly drag and drop a launcher like nova,apex or any to system/app/ of port zip in case port launcher did not worked.
[*]IF you rom did not booted by applying all above steps then replace these folder/files from stock to port:-
1)system/etc/firmware
2)system/lib/hw
3)system/lib/modules
4)system/vendor
[*]If your cwm port rom zip have these files then delete those.
---uboot.bin
---preloader
---logo.bin(you can keep it but you need your stock logo.bin which is available in sptool flahable roms.I will also tell you how to create own logo.bin and bootanimation in below post.)
[*]Your zip should look like this-
--Meta-inf
--system
--boot.img
--data (in some roms)
[*]After deleting the extra files you need to modify the updater script which can be found under,Meta-inf/com/google/android/updater-script...we are modifying by own only this time as we have to check only.During building rom from kitchen,it will be automatically created
as we registered our device.If we do not register our device in kitchen then during making roms from kithcen our current updater script will converted to update script which will be again converted to updater script and that will cause installation aborted error.
[*]Now drag and drop updater script from zip to anywhere and open it with notepad++,now find lines below-
Code:
format("ext4", "EMMC", "/dev/block/[COLOR="DarkOrange"]mmcblk0p7[/COLOR]", "0");
format("ext4", "EMMC", "/dev/block/[COLOR="DarkOrange"]mmcblk0p5[/COLOR]", "0");
mount("ext4", "EMMC", "/dev/block/[COLOR="Red"]mmcblk0p7[/COLOR]", "/data");
mount("ext4", "EMMC", "/dev/block/[COLOR="Red"]mmcblk0p5[/COLOR]", "/system");
[*]Here you have to deal with text in red.Your updater script may be different so use your brain and understand what i am saying forward.Text in red is mount point.In above mmcblk0p7 is mount point of data folder and mmcblk0p5 is mount point of system folder.So you need to replace mount points of updater script with your device mount points.You must found mount points of your device during registering device to kitchen.So open recovery.fstab or that kitchen/tool/edify_defs/your file with notepad++ and copy replace mount points from your device file to updater-script of port zip.If you find those lines any more places in updater script then also replace there.Here you only need some mind to use.For example if you edited and replaced red text then you must also replace orange text as they are also same.
[*]Remove the lines of the files which you removed in zip if there,like uboot.bin,logo.bin,preloader etc...they will look like below codes,you only need to find the line matching to the file you removed and deleat that.
Code:
package_extract_file("uboot.bin", "/dev/uboot");
or
assert(package_extract_file("uboot.img", "/tmp/uboot.img"),
write_raw_image("/tmp/uboot.img", "uboot"),
delete("/tmp/uboot.img"));
or
assert(package_extract_file("preloader.img", "/tmp/preloader.img"),
write_raw_image("/tmp/preloader.img", "preloader"),
delete("/tmp/preloader.img"));
[*]And replace this line
Code:
assert(package_extract_file("boot.img", "/tmp/boot.img"),
write_raw_image("/tmp/boot.img", "bootimg"),
delete("/tmp/boot.img"));
From this if any error occurs during installtion like boot.img assert failed.
Code:
package_extract_file("boot.img", "/dev/boot");
[*]Drag back the updater-script to zip from where it was taken from.
What we have done above is that we drag and drop some stock files from stock rom to port zip without extrating it.
Now you are good to flash your ported rom.Make CWM backup if you want to go back to previous rom or rom did not booted.After that wipe data factory reset,wipe cache partition,wipe dalvic cahce under advance option and then format system under mount and storage OF CWM RECOVEY then install zip from sd card and install your zip.I said SD card in first post if your rom did not booted and you understood your mistake and modified your port rom zip then you can do that directly by transferring zip to sd and flash instead of installing or restoring another rom.But for the users with not sd card must save their CWM backup or a working cwm flahable Rom zip otherwise they will have to reflash the rom by SP tools if rom didnot booted.
STEP II
NOTES BEFORE BEGINNING STEP II :-
If you ported your ROM using STEP I and booted then for modifying use this STEP II.
If you tried porting rom using STEP I but it is showing installation aboted then follow this STEP II directly.
IF you have SP Flash tools format port rom and you extracted system folder and boot.img from your stock rom using my method then Follow STEP II directly.
STEP II contains some steps from STEP I,so if you already did those steps in STEP I and using same zip here then you can skip steps here.If you get confused then again do all steps.
STEP(A)- ADDING A WORKING FOLDER IN KITCHEN
FOR CWM ROM:-
Create a folder " WORKING_XXXX " under kitchen/original _update if you haven't.If you having it then check that it is empty.
Now open your port zip (or zip you ported through STEP I and was booted) and extract its System and boot.img to "WORKING_XXXX " folder.
Open kitchen and press "1" to setup a working folder.
Press Enter and select "WORKING_XXXX " folder by it assigned digit and hitting Enter
Now it will ask for name,you may change it or leave it,it does not matter.Skip it by pressing Enter.
It will start copying files to a working folder,wait sometime.
After it will ask to view Rom info,then press Y and see its info as your wish.
Now you have a working folder setup-ed.
FOR SP TOOLS ROM:-
Extract system.img & boot.img from port rom zip to C;\cygwin\home\username\kitchen\original_update
Run Kitchen and press "1" to setup working folder and hit enter.
Now again hit Enter,this time it will ask you to choose an option to select working folder,Select system.img&boot.img one folder by pressing its value and hitting enter.
Now it will ask about changing working folder name,leave it as default and hit enter.So kitchen will now start copying rom to working folder.
After Copying files it will auto prompt and open Ext2Explore application.In some cases it will show that error message that "unable to read disk,please make sure you are running appliacation with administrative rights."But don't worry,click ok.
Now after Ext2Explore opened,click on "FILE" on upper left corner and click on "OPEN IMAGE".Now browse to kitchen directory and go through newly created working folder and you will find "ext4_system.img" under system folder.Select it.
Right click on file selected in Ext2Explore and Click on SAVE,now browse to same folder where "ext4_system.img" was.Means newly created working folder/system under kitchen directory.
Then it will extract "ext4_system.img" to same folder.After finishing extraction close the Ext2Explore application.Now hit Enter in kitchen and go with default then Press y to view ROM info as per your wish.
Now you have a working folder setup-ed.
STEP(B)-Porting Rom
PATCHING BOOT.IMG:-
After successful creation of working folder you will find a new folder created named like-"WORKING_041214_135729".
Open kitchen then Press 0 for advance option and hit enter.Now press 12 and hit enter.Now you press "w" to extract boot.img from working folder.
After sucessful extraction you will find a folder under kitchen named BOOT EXTRACTED.
Now you have to copy zImage from stock boot extracted folder(which was created by you in second post last step) to this BOOT EXTRACTED folder and replace it.
Now switch to kitchen and press "b" to build boot.img from BOOT EXTRACTED folder then after repacking boot.img finish press x to exit and back to main menu.
Editing Build Prop:-
you will find build.prop under kitchen/your_working_folder/system/
Edit build.prop with notepad++
You can Edit These Values as desired:-
Code:
ro.build.id=
ro.build.display.id=
ro.custom.build.version=
ro.build.version.release=This is Andriod version That Displays in Settings
ro.product.model=
ro.product.brand=
ro.product.name=
ro.product.device=[B][U][COLOR="Red"]NAME OF FILE WHICH YOU USED TO REGISTER YOUR DEVICE TO KITCHEN[/COLOR][/U][/B]
ro.product.manufacturer=
ro.build.bluetooth.name=
EDIT BELOW LINES TO SET YOUR TIMEZONE AND AREA REGION.You can find your default details in your stock rom's build.prop which you extracted earlier.
Code:
ro.product.locale.language=(en for English,ru for Russian and other similar codes for other language)
ro.product.locale.region=(us for usa, IN for india etc.)
persist.sys.timezone=( Asia/kolkata for india,Asia/... different for different regions)
Add this line if you are porting from higher resolution deice or lower resolution device.If from higher to lower then put lower values and if lower to higher then put higher values.
Code:
ro.sf.lcd_density=xxx
Now after editing done save it and exit.
Patching Rom With Some STOCK Rom Files:-
Copy modem.img from stock Rom- System/etc/firmware to kitchen/working_folder/system/etc/firmware and replace it.
Copy libcamercustom.so file from stock Rom- System/lib to kitchen/working_folder/system/lib and replace it.
Copy mtk_stp_wmt.ko file from stock Rom- System/lib/modules to kitchen/working_folder/system/lib/modules and replace it.If ROM not booted then replace whole modules.
Copy Generic.kl file from stock Rom- System/usr/keylayout to kitchen/working_folder/system/usr/keylayout and replace it.
Download any launcher apk from net link nova,apex etc and paste into kitchen/working_folder/system/app/
If after Building rom from next step,your rom did not booted then replace these files from stock to port then build rom.
1)system/etc/firmware
2)system/lib/hw
3)system/lib/modules
4)system/vendor
Building Rom
After all above steps done,now switch to kitchen and press 99 to build ROM.
But before pressing 99 check that you put name of file by which you registered your device to kitchen in build.prop/ro.product.device="".If you registered with name x then put like this-ro.product.device="x"
If you have not done above step then you will get installation aborted error during installation.If you are confused to register device send me required fies as asked by me in above post.
After all checked now press 99
Select Build Option 1 then hit Enter
Now it will ask to zip-lang the apk,do as your wish.
After that step it will convert Updater Script and ask two option,Proceed or cancel,then Proceed by pressing "y".
It will then start making update.zip.Wait some time.
Next it will ask to sign the zip or not?You should go with default by signing update zip by hitting Enter or Pressing "y" then pressing enter.It will take some time.
After that if you want to change your ROM name then put desired name by pressing y or leave as it is by hitting Enter or 'N' then enter.
Collect you rom.zip from Output_zip folder created under kitchen directory.
Flash it and check it.
If you find some bugs then see post below to solve bugs or if you are not able to find bug solution below then post it.I will tell you how to solve it if i know.
I have ported 10+ Roms using this method,this should work for you too.Hopes that your ROM will boot.Good Luck.
SOLVING BUGS
BUG SOLVING USES HIT AND TRIAL METHOD.I mentioned one or more ways to solve,you try one by one and see which works for you.
FM NOT WORKING:-
COPY THESE FILES FROM STOCK TO PORT:-
\system\lib\libaudio.a2dp.default.so
\system\lib\libaudio.primary.default.so
\system\lib\libaudiocompensationfilter.so
\system\lib\libaudiocustparam.so
\system\lib\libaudioeffect_jni.so
\system\lib\libaudioflinger.so
\system\lib\libaudiosetting.so
\system\lib\libfmar1000.so
\system\lib\libfmcust.so
\system\lib\libfmjni.so
\system\lib\libfmmt6616.so
\system\lib\libfmmt6620.so
\system\lib\libfmmt6626.so
\system\lib\libfmmt6628.so
OR try this
system/etc/firmware/mt6620_patch_e3_hdr.bin
system/etc/firmware/mt6620_patch_e6_hdr.bin-> If yours is MT6628, you'll need to patch all mt6628_fm_*_*.bin too
system/etc/firmware/WMT.CFG-> This is the antenna cfg, without this, FMradio cannot receive clearly
system/lib/modules/mtk_fm_drv.ko
system/lib/libfmcust.so
For WiFi Bluethooth:-
system/lib/modules/mtk_wmt_wifi.ko -> After patching, both works & can be individually switch on/ off
system/lib/libbluetooth_mtk.so
system/lib/libbluetoothem_mtk.so -> MTK Engineering will show MT6628 if not patch...
system/etc/firmware -> if yours is MT6628, you'll need to patch all WIFI_RAM_CODE_* too
For GPS:-
->>>> system/xbin/libmnlp
or, If you porting From MT6628 to MT6620, some apps at system/vendor/operator/ is blocking GPS so just delete all apps & use MTK Engineering mode to confirmed it...
Edit in build.prop
fmradio.driver.chip=1 -> if yours is MT6628 then change it to 3
mediatek.wlan.chip=MT6620 -> if yours is MT6628 then change last digit to 8
mediatek.wlan.module.postfix=_mt6620 -> if yours is MT6628 then change last digit to 8
For Camera:-
->Unpack boot.img again and go to BOOT-EXTRACTED/boot.img-ramdisk/init.project.rc and edit with notepad++,also open stock bootextracted/ramdisk/init.project.rc.Now find camera permissions and replace whole camera line with stock camera lines.
->then open init.rc of both port and stock and find camera lines and copy/replace camera lines from stock to port.
->Now repack boot.img
OR
copy these from stock to port
system\lib\hw\camera.default.so --- (if you have two files like camera.goldfish.so delete this the one with the goldfish)
\system\lib\libcamera_client.so
\system\lib\libcameracustom.so
\system\lib\libcameraprofile.so
\system\lib\libcameraservice.so
or
copy from system/lib of stock to port.
- libmhal.so
- libmhalcontent.so
- libmhaldrv.so
- libmhalmdp.so
- libmhalpipe.so
- libmhalscenario.so
- libmhalutility.so
or
Put libcamdrv.so of rom only or campare the file of size of your porting rom file and the base rom then whose size is same leave it and whose size is greater in ur stock rom jst add and replace that file only.
or
lib3a.so
liba3m.so
libacdk.so
libaudioflinger.so
libc.so
libcam.camadapter.so
libcam.campipe.so
libcam.camshot.so
libcam.client.so
libcam.paramsmgr.so
libcam.utils.so
libcam_camera_exif.so
libcamalgo.so
libcamdrv.so
libcamera_client.so
libcamera_jni_eglfence.so
libcamera_metadata.so
libcameracustom.so
libcameraservice.so
libgn_camera_feature.so
libexif
libfeatureio.so
libfrsdk.so
libft.so
libgcomm_jni.so
libgoggles_clientvision.so
libgui.so
libimageio.so
libja3m.so
libjni_mosaic.so
(Skip if any missing)
or
Replace camera.apk in sysyem/app
And do a ctrl+f search in system/lib for anything called 'camera', 'camrecorder', or just 'cam' and replace those.
Storage mount Problem Fix:-
copy paste sytem/etc/vold.fstab from stock to port
USB NOT MOUNTING IN PC FIX:-
copy init.usb.rc from stock boot.img extracted to port and repack.
Audio Problem Fix:-
copy paste sytem/lib/all audio lib file from stock to port.(search by ctrl+f)
ICON RESIZER:-
see these
http://forum.xda-developers.com/showthread.php?t=2219584
http://forum.xda-developers.com/showthread.php?t=2380513
DATE AND TIME ERROR FIX:-
check build prop region and compare and replace from stock build prop.
or
Use gravity box date and time fix
Minimum Brightness:-
ro.init.screen_brightness=110 in build prop
If App Force Closing:-
Use Updated App or if only rooted apps are getting Force close then Check Root
If nothing helped then removed that apk from system folder.
If a weird image Showing Between Boot logo and boot animation:-
Use stock rom's system/media/images/boot_logo in port.
TWEAKING&MODIFICATION
BUILD.PROP TWEAKS
HOW TO ADD:-Open Build.prop with Notepad++ and copy and paste these tweaks lines and save it.
Force launcher into memory
Code:
ro.HOME_APP_ADJ=1
Raise JPG quality to 100%
Code:
ro.media.enc.jpeg.quality=100
VM Heapsize; higher the RAM, higher the hp can be.
Code:
dalvik.vm.heapsize=48m
Render UI with GPU
Code:
debug.sf.hw=1
Decrease dialing out delay
Code:
ro.telephony.call_ring.delay=0
Helps scrolling responsiveness
Code:
windowsmgr.max_events_per_sec=150
Save battery
Code:
wifi.supplicant_scan_interval=180
pm.sleep_mode=1
ro.ril.disable.power.collapse=0
Disable debugging notify icon on statusbar
Code:
persist.adb.notify=0
Increase overall touch responsiveness
Code:
debug.performance.tuning=1
video.accelerate.hw=1
Raise photo and video recording quality
Code:
ro.media.dec.jpeg.memcap=8000000
ro.media.enc.hprof.vid.bps=8000000
Signal (3G) tweaks
Code:
ro.ril.hsxpa=2
ro.ril.gprsclass=10
ro.ril.hep=1
ro.ril.enable.dtm=1
ro.ril.hsdpa.category=10
ro.ril.enable.a53=1
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=5
Net speed tweaks
Code:
net.tcp.buffersize.default=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.wifi=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.umts=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.gprs=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.edge=4096,87380,256960,4096,16384,256960
Disable blackscreen issue after a call
Code:
ro.lge.proximity.delay=25
mot.proximity.delay=25
Fix some application issues
Code:
ro.kernel.android.checkjni=0
Phone will not wake up from hitting the volume rocker
Code:
ro.config.hwfeature_wakeupkey=0
Force button lights on when screen is on
Code:
ro.mot.buttonlight.timeout=0
Disable boot animation for faster boot
Code:
debug.sf.nobootanimation=1
Miscellaneous flags
Code:
ro.config.hw_menu_unlockscreen=false
persist.sys.use_dithering=0
persist.sys.purgeable_assets=1
dalvik.vm.dexopt-flags=m=y
ro.mot.eri.losalert.delay=1000
Init.d TWEAKS
HOW TO ADD:-
-->>For adding init.d tweaks you must add init.d support from kitchen by using option "14" then you will see a new folder will be created under system/etc/"init.d"
-->>Now open a empty file with notepad++ and add- " #!/system/bin/sh " at top and then add below lines then save it with name as you wish.Make separate file for each tweak.
[*]Strict minfree handler tweak
Code:
echo "2048,3072,6144,15360,17920,20480" > /sys/module/lowmemorykiller/parameters/minfree
[*]Internet speed tweaks
Code:
echo "0" > /proc/sys/net/ipv4/tcp_timestamps;
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse;
echo "1" > /proc/sys/net/ipv4/tcp_sack;
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle;
echo "1" > /proc/sys/net/ipv4/tcp_window_scaling;
echo "5" > /proc/sys/net/ipv4/tcp_keepalive_probes;
echo "30" > /proc/sys/net/ipv4/tcp_keepalive_intvl;
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout;
echo "404480" > /proc/sys/net/core/wmem_max;
echo "404480" > /proc/sys/net/core/rmem_max;
echo "256960" > /proc/sys/net/core/rmem_default;
echo "256960" > /proc/sys/net/core/wmem_default;
echo "4096,16384,404480" > /proc/sys/net/ipv4/tcp_wmem;
echo "4096,87380,404480" > /proc/sys/net/ipv4/tcp_rmem;
[*]Vm management tweaks
Code:
echo "4096" > /proc/sys/vm/min_free_kbytes
echo "0" > /proc/sys/vm/oom_kill_allocating_task;
echo "0" > /proc/sys/vm/panic_on_oom;
echo "0" > /proc/sys/vm/laptop_mode;
echo "0" > /proc/sys/vm/swappiness
echo "50" > /proc/sys/vm/vfs_cache_pressure
echo "90" > /proc/sys/vm/dirty_ratio
echo "70" > /proc/sys/vm/dirty_background_ratio
[*]misc kernel tweaks
Code:
echo "8" > /proc/sys/vm/page-cluster;
echo "64000" > /proc/sys/kernel/msgmni;
echo "64000" > /proc/sys/kernel/msgmax;
echo "10" > /proc/sys/fs/lease-break-time;
echo "500,512000,64,2048" > /proc/sys/kernel/sem;
[*]Battery tweaks
Code:
echo "500" > /proc/sys/vm/dirty_expire_centisecs
echo "1000" > /proc/sys/vm/dirty_writeback_centisecs
[*]EXT4 tweaks (greatly increase I/O)
(needs /system, /cache, /data partitions formatted to EXT4)
Code:
tune2fs -o journal_data_writeback /block/path/to/system
tune2fs -O ^has_journal /block/path/to/system
tune2fs -o journal_data_writeback /block/path/to/cache
tune2fs -O ^has_journal /block/path/to/cache
tune2fs -o journal_data_writeback /block/path/to/data
tune2fs -O ^has_journal /block/path/to/data
[*]Perfect mount options
Code:
busybox mount -o remount,noatime,noauto_da_alloc,nodiratime,barrier=0,nobh /system
busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodiratime,barrier=0,nobh /data
busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodiratime,barrier=0,nobh /cache
[*]Flags blocks as non-rotational and increases cache size
Code:
LOOP=`ls -d /sys/block/loop*`;
RAM=`ls -d /sys/block/ram*`;
MMC=`ls -d /sys/block/mmc*`;
for j in $LOOP $RAM
do
echo "0" > $j/queue/rotational;
echo "2048" > $j/queue/read_ahead_kb;
done
[*]MicroSD card speed tweak
Code:
echo "2048" > /sys/devices/virtual/bdi/179:0/read_ahead_kb;
[*]Defrags database files
Code:
for i in \
`find /data -iname "*.db"`
do \
sqlite3 $i 'VACUUM;';
done
[*]Remove logger
Code:
rm /dev/log/main
[*]Ondemand governor tweaks
Code:
SAMPLING_RATE=$(busybox expr `cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency` \* 750 / 1000)
echo 95 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo $SAMPLING_RATE > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
[*]Auto change governor and I/O Scheduler
Code:
echo "vr" > /sys/block/mmcblk0/queue/scheduler
or
echo "sio" > /sys/block/mmcblk0/queue/scheduler
[*]Governor (Best: Minmax > SavagedZen > Smoothass > Smartass > Interactive) - needs kernel with these
Code:
echo "governor-name-here" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
[*] Disable normalize sleeper
Code:
mount -t debugfs none /sys/kernel/debug
echo NO_NORMALIZED_SLEEPER > /sys/kernel/debug/sched_features
GPS.conf TWEAKS
How To:-Create or edit your /system/etc/gps.conf with a Notepad++.
Benefit:-For improving GPS lock time and signal.
-->>SE supl for A-GPS (better than Nokia's or Google's)
Code:
SUPL_HOST=supl.sonyericsson.com
SUPL_PORT=7275
Or DOWNLOAD this patched gps.config
APN TWEAKS
-->>apns-conf.xml located at system/etc/"apns-conf.xml"
-->>Edit apns-conf.xml with notepad++ to add desired apns.
-->>Use CyanogenMOD's APN list file - it's one of the most complete.Download from google.
-->>You can use Mine one too- Downlaod
ADS BLOCK TWEAK
(Lots of developers are supported Through it so please think twice before adding it.)
-->>You can use mine hosts file.Download
-->>You can refer these url for getting file content-
http://www.mvps.org/winhelp2002/hosts.txt
http://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts
-->>hosts file are located to system/etc/"hosts"
USE LATEST SUPERUSER APP AND SU BINARY
Downlaod From here
USE PORTED APPS IN YOUR ROM
HERE IS LINK OF HUGE COLLECTION OF PORTED APPS:-CLICK
How to Implemant Ported Apps?
->Download it and open its zip.
->Now open system folder in zip and drag and drop all files to port rom means copy all system folder contents only to port system folder.
More things will be added soon.
THEMING
I will discuss very short on Theming,rest search on Google.
[START]
SETTING UP APKTOOL:-
->>If you have installed apktool and java then you can start.
->>Now go to the extracted apktool folder and hold "SHIFT" keyboard button and then right click mouse.
->>Here select-Open command window Here" option.
->>For Theming you need to decompile the apk which you want to theme,so grab those apks first and put into apktool folder.
-->>Also take framework-res.apk and medaitek-res.apk and put these also in apktool folder.
->>For decompiling system folder apk,you need to install framework-res.apk and medaitek-res.apk first.So in command window input-
Code:
apktool if framework-res.apk
apktool if mediatek-res.apk
->>hit enter one after one.So you will get message that apk installed to....for both apks.
->>Always write words carefully in command terminal,write same words as apks in apktool folder.
NOW YOU CAN DECOMPILE SYSTEM APKS OF THE ROM WHOSE FRAMEWORK YOU HAVE INSTALLED.IF YOU DONE WITH THAT ROM AND WANT TO MODIFY NEXT ROM APKS THEN
GO TO C:\users\yourusername\apktool and delete all present apks.
Lets start Decompiling:-
->>Open command terminal under apktool,if you already opened then good.
Lets assume that you are decompiling launcher.apk then,
->>Type this below command to decompile apk.You need to replace only apk name....
Code:
apktool d launcher.apk
->>and hit enter.It will decompile in same apktool folder.
->>Now open it and modify it as you wish.
->>For editing its images and theme and look,go to drawable-hdpi folder replace pngs with same resolution pics or edit with photoshop or gimp etc.
->>You can do major modification in thems with systemUI.apk
->>And for rest take help from google.I will update this and add more stuffs when i get time.
->>Now after all modifications done,now lets compile apk.Use command below and replace apk name....
Code:
apktool b launcher.apk
->>Hit enter.Now you have to drag and drop meta-inf and AndroidManifest.xml of launcher.apk which was placed under apktool directory for decompiling(use 7 zip to open apk and drag files from it) to apktool directory/launcher/build/apk/ and replace when prompt.
->>Now again repeat this command in command bar-
Code:
apktool b launcher.apk
->>hit enter,Now this time you can collect you compiled apk from- apktool directory/launcher/dist/"launcher.apk"
->>I know you may get confused by all these steps so watch an awesome video by nero young to clear your confusions-VIDEO
MAKING PATCHES ZIP
IT WILL BE VERY EASY FOR YOU TO MAKE PATCHES ZIP IF YOU DOWNLOAD THESE BELOW 4 FILES :-
1) ONLY BOOT.IMG PATCH ZIP
2) ONLY SYSTEM FOLDER PATCH ZIP
3) SYSTEM FOLDER + BOOT.IMG PATCH ZIP
4) KERNEL ZIP & KEREL REVERT ZIP.
Download above Zips.
First zip is for extracting only boot.img patch .
Second zip will patch system folder's all folder.
Third Zip will allow you to patch both boot.img and system folder contents of your rom.
Fourth one will allow you to flash any custom kernel if available for your device.
How to use all above patches.zip?
->For first one open zip using 7zip and drag the boot.img you want to patch to it then flash it with cwm
->For second one,if you want to add an apk or any other lib files or replce lib file or any other system folder files to your rom then drag and drop that file to second zip with correct folder path.
->Third one will allow first and second to flash at once.
->Fourth zip is for custom kernel,Custom kernel contains two part,boot.img and another system/lib/modules/lots of file.For custom kernel flashing or reverting with stock kernel,you need to drag and drop boot.img and system/lib/modules/ to fouth zip and flash via cwm.
IF YOU WANT TO ADD UBOOT.BIN TO ROM OR FLASH UBOOT.BIN THEN USE BELOW LINE IN UPDATER SCRIPT:-
package_extract_file("uboot.bin", "/dev/uboot");
Click to expand...
Click to collapse
ADDING OTA UPDATE
You will need to download its apk first- OTA_UPDATER_DWONLAOD
You will also require all 4 patch zips from above post.
STEPS TO ADD OTA UPDATE :-
Put OTAUpdater-1.0.5.apk in system/app folder.
Edit build prop by notepad++ and add these three lines:-
Code:
otaupdater.otaid=<ROM ID any you can pick>
otaupdater.otatime=<Date/time of this build in yyyymmdd-hhmm format>
otaupdater.otaver=<The human-readable version number/name>
EXAMPLE FROM MY ROM:-
Code:
otaupdater.otaid=xos
otaupdater.otatime=20130930-1553
otaupdater.otaver=1.0
Now you are good to receive and send OTA update to your Rom....but first you have to setup account online.
Registering Device Online
Go to https://www.otaupdatecenter.pro/ and Register there.
After successful registration,click on +Add Rom.A form will be opened then.Fill it.
1)Enter Rom name same as you written in build prop display id.
2)Enter ROM OTA ID (as in build.prop)
3)Enter ROM version (as in build.prop)
4)Enter OTA date/time here (yyyymmdd-hhmm, as in build.prop).
5)Enter download url.(put any URL right now,we are just adding rom first)
6)Enter MD5 file-hash.(put any file md5 check sum.we will edit it when we provide update)
7)Put any Change log...write anything
8)On last column put the name of your device same as in build prop "ro.product.device= ".In my case i use a110q and here is my code in build prop:-
Code:
ro.product.device=a110q
Lastly do not tick on check box as it will make OTA private.
Now your device is registered.
PROVIDING OTA UPDATE:-
Create update using any of my 4 files which you need to update.Lets assume you want to update an apk or add an apk,so you will use my only system folder patch zip.
Now open my provide zip using 7zip and drag and drop your apk with its path.As i provided patch with only system folder and no path forward.So open system folder and right click and create folder,name it "app" and then open app and drag apk in it.
If you were updating bootanimation then you should create media folder under system folder of my zip.
Now after making patches done.Download the Sign-em! from HERE and extract it anywhere.
You will get input,output and some more files....put your zip in input and run "sign-em.bat",it will sign your update zip and also give you its md5checksum.Signing your update is necessary.
After signing zip upload it to drop-box (suggested and tested) and after upload finished,click on download button and copy its url which is generated after that.Means copy url which is prompt in download manager if you using.If you do not use this url then OTA will not work.
Again open https://www.otaupdatecenter.pro/ and go to rom list and click on update rom.
This time put download URL which was generated after clicking download button on dropbox in URL box and also put its md5 checsum which was generated in output folder text file of sign-em!!
And change version also,put 2.0 in version if earlier 1.0,you can also put 1.1 or 1.2 any you want but change it.
And lastly put new date and time as per its format and give your update description if you want.
Check all things then click Update.All done you are good to get update.
Your mobile should have data connection enabled all time during this process.
if any confusion ask me or see faq on https://www.otaupdatecenter.pro/
WIP
ADDING CUSTOM KERNEL
CUSTOM KERNEL ZIP STRUCTURE:-
->>Meta-inf
->>system/lib/modules
->>boot.img
For Adding it to your rom extract your kernel zip or drag and drop system/lib/modules/all files to port rom and replace all.
Then switch to kitchen and press "0" for advance option and then 12 for extracting boot.img.Here press "a" for extracting boot.img from any folder.Hit enter,you will see a folder created named like "bootimg_041114_230352" and put your custom kernel boot.img in it.
Now press Enter then kitchen will extract it in same folder.
Then back to kitchen 12 th menu of extraction of boot.img,here press "w" to extract boot.img from working folder,so it will extract boot.img from port rom(which is present in working folder) to BOOT-EXTRACTED folder under Kitchen.
Now copy zImage from previous extracted folder "bootimg_041114_230352" to BOOT-EXTRACTED folder and replace it.
Press b in kitchen to repack boot.img.All done.
What we have done above- We used zImage(from boot.img) of custom kernel in port rom boot.img and used all system/lib/modules folder from Custom kernel zip.
ADDING SMALL BUT COOL STUFFS
ADDING DESIRED TEXT DURING ROM INSTALLATION:-
After Finishing your Rom,drag and drop Meta-inf/com/google/android/"Updater-script" to anywhere in your pc.
Now open it with Notepad++,and use this code to dislpay your texts in installation:-
Code:
ui_print(" ");
Put any alphabet or symbol or digit between (" ") and it will show during Installation.
For generating cool Ui prints you can search Google about text to ASCII converter websites and put your text and get cool texts for installation window.
After all modifications done,drag and drop back updater script to zip.
For Example:-
Code:
ui_print("========STARTING INSTALLATION===========");
ui_print("========================================");
ui_print(" |\ _,--------._ / | ");
ui_print(" | `.,' `. / | ");
ui_print(" ` ' BEAST ,-' ' ");
ui_print(" \/_ _ ( / ");
ui_print(" (,-.`. ,',-.`. `__,' ");
ui_print(" |/*\ ),-','*\`= ,'.` | ");
ui_print(" `._/) -'.\_,' ) ))| ");
ui_print(" / (_.)\ . -'// ");
ui_print(" ( /\____/\ ) )`'\ ");
ui_print(" \ |V----V|| ' , \ ");
ui_print(" |`- -- -' ,' \ \ _____ ");
ui_print(" ___ | .' \ \ `._,-' `- ");
ui_print(" `.__,`---^---' \ ` -' ");
ui_print(" -.______ \ . / ______,- ");
ui_print(" `. ,' ");
ui_print("=== STOCK BEAST ROM BY DIGYVIJAY KR. ===");
ADDING AROMA INSTALLER:-
Take help from HERE
And here is an HELPFUL VIDEO.
I will explain these stuffs later
ADDING CUSTOM BOOT ANIMATION & SHUT-ANIMATION:-
You Can find bootanimation and shutanimation under system/media folder.If you ported from larger resolution device or smaller resolution device then animation will look weird.so you need to resize it or add own made one.
[*]For adding own or editing previous boot-animation you will need this software-Download thanks to @despotovski01 for this)
[*]Now install it.You will also need to know your mobile resolution for making or resizing boot-animation or shut-animation to your size.
FOR RESIZING BOOT-ANIMATION & Shutanimation:-
[*]Take bootanimation.zip from system/media and extract it to any folder.
[*]Now you will see lots of images in it under its sub folder like part0 part1...
[*]Resize all images to your screen resolution.You can use some softwares to resize them easily.Find on Google.(do not mess with serial number order)
[*]Now make a New folder and make another folder under it named- "part0" and put your all resized pngs to it.(from all folders you have in your bootanimation.zip)
[*]Start Boot Animation Factory and Click on "create a new boot-animation",then choose "folder" and click OK.
[*]Now click choose folder button and browse your created folder in which you put part0 folder.DO not choose part0 folder,choose is outer folder.
[*]Here Click on add loop then select part0 folder in prompt dialog box and click on add.
[*]If you want to repeat animation then tick repeat.Now you should preview it first before saving.you can adujust animation speed by clciking on text above your loop created,and click to edit it and then edit FPS according to need.Here is the example line:-30 is FPS here and rest is reso...
Code:
480,854,30
[*]If everything fine then click save boot-animation and save it with name same as in sytem/medaia folder and then replace it.Its all done.
[*]Same process for shut-animation.
FOR CREATING BOOT-ANIMATION & Shutanimation:-
You will have to use own creativity skill for creating its frames.Some knowledge of Photoshop required.
Design your boot animation frames and manage it serially.
Create a folder with any name and create another sub folder in it named "part0" and put all your designed pngs in it.
Start Boot Animation Factory and Click on "create a new boot-animation",then choose "folder" and click OK.
Now click choose folder button and browse your created folder in which you put part0 folder.DO not choose part0 folder,choose is outer folder.
Here Click on add loop then select part0 folder in prompt dialog box and click on add.
If you want to repeat animation then tick repeat.Now you should preview it first before saving.you can adujust animation speed by clciking on text above your loop created,and click to edit it and then edit FPS according to need.Here is the example line:-30 is FPS here and rest is reso...
Code:
480,854,30
If everything fine then click save boot-animation and save it with name same as in sytem/medaia folder and then replace it.Its all done.
Same process for shut-animation.
ADDING DESIRED BOOT LOGO:-
Download logo builder-Download And install.
Get Stock logo.bin -Get the file from your device (/dev/logo) or from stock Rom sp tools flasher.
Open Logo-builder and Click Create New Project
.,? ,1
Now Select the logo.bin file you extracted from the device or took from stock rom.
Make a new folder for the project, any name will work
0Select the folder and click on OK
You will see a progress bar running down. After finishing, you will get a whole bunch of images in the above selected folder
After that,Open the folder containing all the images which you made earlier.
Here Edit or replace" img1.png and img39.png " but keep one thing in mind that use same name and same resolution and same format(png) for replacing.
Click on "make" button on LogoBuilder and you will get update.zip in the folder you made for this project.You can flash this update.zip directly via cwm or you can add to your rom by using below step.
For using logo in your rom,extract logo.bin from update.zip and drag and drop to port rom zip or you can also put this in working folder of kitchen before making Rom.After that,add below code in updater-script to extract your logo-
Code:
package_extract_file("logo.bin", "/dev/logo");
Reserved.
Great Guide
Best Guide Thanks For Helping New Developer like me
yes best guide ever seen for Mediatek devices ....please add seperate section in this thread for MIUI and Lewa os framework and bug solving:fingers-crossed:
excellent guide
Not booting
Everything i done mentioned by you .... But, after flashing with the ported rom created by me , my device stucks in booting.... i don't understand where is the problem actually....
I just ported to this rom
http://forum.xda-developers.com/can...-april-note-3-chrizelnotethree-v3-7a-t2707462
for my mmx canvas 2 plus a110q....
plz help me.....
sawankumar2012 said:
Everything i done mentioned by you .... But, after flashing with the ported rom created by me , my device stucks in booting.... i don't understand where is the problem actually....
I just ported to this rom
http://forum.xda-developers.com/can...-april-note-3-chrizelnotethree-v3-7a-t2707462
for my mmx canvas 2 plus a110q....
plz help me.....
Click to expand...
Click to collapse
remove uboot.bin if present.And also try replacing bootclasspath from stock init.rc to port init.rc
srinath2912 said:
yes best guide ever seen for Mediatek devices ....please add seperate section in this thread for MIUI and Lewa os framework and bug solving:fingers-crossed:
Click to expand...
Click to collapse
Ok i will add them next time i modify the post.....all suggestions are welcome,,,
chanti548 said:
excellent guide
Click to expand...
Click to collapse
thank-you my friend.......
DevendraMilmile121 said:
Best Guide Thanks For Helping New Developer like me
Click to expand...
Click to collapse
thanks milee
digyvijaykumar123 said:
remove uboot.bin if present.And also try replacing bootclasspath from stock init.rc to port init.rc
Click to expand...
Click to collapse
In which directory i found init.rc & bootclasspath .........
sawankumar2012 said:
In which directory i found init.rc & bootclasspath .........
Click to expand...
Click to collapse
under extracted boot.img/ramdisk/init.rc.........you will find bootclass path there.
sawankumar2012 said:
In which directory i found init.rc & bootclasspath .........
Click to expand...
Click to collapse
I'm uploading some screenshot here... It may help u to find my problem... these are the port roms screenshot which i wanna port for my mmx a110Q
Most Samsung users reported that V4A is not working after upgrading to lollipop cause of the unswitchable SELinux, switching SELinux mode compromises the security of the device, so here is the solution without flashing custom kernel:
Note:
*This method should be used with Systemless SU(not magisk) installed*
Con's:
Not working with some music apps with built in equalizers
Steps:
1. Assuming that you have installed systemless root, but still check if /su/bin/supolicy exists...* WORKING IS NOT GUARANTEED ON OTHER SYSTEMLESS METHODS eg. Magisk*
2. Download the latest build of V4A in this thread: https://www.google.com.ph/url?sa=t&...uRG6XJ1DsKgOZngeg&sig2=O8sZ4LawAMMb_9I4inOJ-Q
3. Install the apk as a system app and reboot, after open Root Explorer and create su.d folder in /system partition , set permissions rwxr-xr-x
4. Create 50viper.sh inside the folder and edit and paste:
#! /system/bin/sh
/su/bin/supolicy --live "allow mediaserver mediaserver_tmpfs:file { read write execute };"
5. Save and set permissions rwxr-xr-x
6. Now launch V4A and grant permissions and install drivers.
7. After finished installing of drivers, reboot
8. Disable and clear data of SoundAlive in settings and reboot
Tested with my device: SM - T235(Galaxy Tab 4 7.0 LTE)
http://forum.xda-developers.com/showpost.php?p=65106000
If your having issues with V4A (viper4android) on Android 11 I may have a fix for you.
first install magisk.
Next install audio modification library (DO NOT REBOOT OR START OVER) exit magisk.
Now open V4A install the drivers and grant root permissions once drivers installed and device rebooted open magisk and turn off AML (audio modification library) close magisk and re open V4A install drivers once rebooted return to magisk and turn AML back on choose your flavour of root browsing method and go to /system/etc/ and find audio_effects.config and open in read/write we need to edit the file scroll down to
"
dynamics_processing {
library dynamics_processing
uuid xxxxxxxxxxxxxxxxxxxx
"
Now add this under
}
pre_processing {
path /vendor/lib/soundfx/libaudiopreprocessing.so
}
Underneath this line "
dynamics_processing {
path /vendor/lib/soundfx/libdynproc.so{
And under """
dynamics_processing {
library dynamics_processing
uuid e0e6539b-1781-7261-676f-6d7573696340
}. ""
agc {
library pre_processing
uuid aa8130e0-66fc-11e0-bad0-0002a5d5c51b
}
aec {
library pre_processing
uuid bb392ec0-8d4d-11e0-a896-0002a5d5c51b
}
ns {
library pre_processing
uuid c06c8400-8e06-11e0-9cb6-0002a5d5c51b
(Not sure if your uuid will match my but scroll down in your config file your uuids that go with these will be there)
once those are copied your done just save your new config but please back up your original I'm not responsible for bricked or broken or destroyed devices in any way this is only a guide for those who have tried all other steps modification of system files is never recommended if you don't save a backup let me know if this works for you
If turning your device still stuck in abnormal or "processing = no" then please install audio compatibility patch once installed and rebooted go in to magisk and disable (don't remove) and try again post results here