[GUIDE][Noob Friendly] How to make custom rom for Infinix Hot 2 - Infinix HOT 2

Hi,
This is a all in one guide for making custom roms for Infinix Hot 2.
The guide will have 3 parts:
1) Normal porting
2) Crossporting => Click here
3) Bug fixing => Click here
Disclaimer:
Code:
I, XDA or anyone else involved in the making of this guide
can NEVER be held for any damage to your device if you
follow an even small part of this guide. We won't bear
any responsability for dead sdcards, thermonuclear
explosions, fried mother, your device gave birth to a
dragon or goes to mars!
If anything happens, bad or good, consider it as fate and
live with it.
Basics & Terms:
Terms:
Stock ROM: This is your original ROM. Can also be called Stock.
Port ROM: This is the ROM you want to port. Can also be called Port.
Boot.img: This is the kernel and the ramdisk.
BootP.img: This should be Port ROM Boot.img
BootS.img: This should be Stock ROM Boot.img
Normal Porting: This is for porting from the same Chipset (MT6580 to MT6580)
Crossporting: This is for porting from a different but close Chipset (MT6582 to MT6580 or MT6592 to MT6580). These chipsets have Mali-400MP GPU with different cores.
Basics:
What is porting ?
Porting is simply making another device's software work on yours.
Benefits ?
Well, you can enjoy many custom UI beside the stock ROM's UI such as:
- Amigo OS
- HTC Sense
- Samsung Touchwiz
- Freeme OS
- Flyme OS
- Asus Zen UI
- Etc
Porting rules: PORTING ONLY WORK WITH SAME ANDROID VERSION. YOU CAN NOT PORT KITKAT ROM TO HOT 2. YOU CAN'T PORT MARSHMALLOW ROM WITH LOLLIPOP BOOT.IMG
Click to expand...
Click to collapse
Part 1: Normal porting
Fast and Automatic Porting Tool:
Update:
The XDA user @RendyAK created an awesome tool that will automate this process for you!
All you just need is Port ROM system.img and Boot.img
If your ROM comes in Recovery format, go to "Get Port ROM ready" section, because this tool requires a system.img
Download here Fastport v1.zip (Google Drive)
I. Get Stock ROM ready
A- Method 1:
1) Connect your phone to your PC.
- Make sure it's rooted and you're on stock rom.
- Make sure you have installed all necessary drivers including ADB, Fastboot, Vcom PreLoader etc.
- Make sure you have enabled "USB Debugging" in "Developer Options"
2) Create a folder on your desktop and name it "System". Open it and click on "Shift" on your keyboard now click "Open command window here"
3) Now type in the following command:
Code:
adb devices
adb pull /system
Once done, you should find your files in system folder you created in step 2.
4) Now time to extract stock boot.img. Type the following commands (press enter after each command):
Code:
adb shell
su
cd /sdcard
mkdir dd.out
dd if=/dev/block/platform/mtk-msdc.0/by-name/boot of=/sdcard/dd.out/boot.img
exit
adb pull sdcard/dd.out/boot.img
Now you should have boot.img inside system folder. Create a new folder and name it "Stock". Move boot.img from system folder created in step 2 to the newly created "Stock" folder. Move the system folder itself to "Stock" folder.
B- Method 2:
If for some reasons that doesn't work, then follow these.
1) Get a Stock ROM for your Hot 2 (Infinix 5.1 recommended).
2) Extract it, you'll get a folder with a bunch of files inside it. We just need boot.img and system.img
3) Download and extract this file Extract_System.rar
4) Open the extracted folder, open ext4_unpacker.exe and click on the little folder near the Exit button.
5) Locate the system.img file of the stock rom you extracted in step 2.
6) Wait till it loads, now select all the files on the right column. Right click and select "Extract", point it to the system (guide by Nonta, stolen by Nayan Deka) folder inside the extracted archive (extracted in step 3).
7) When done, move the system folder from the extracted archive to a new folder (name that new folder "Stock"). Copy boot.img from the extracted folder in step 2.
II. Get Port ROM ready
The Port ROM will come in either Recovery flashable or SP Flash tool flashable format. Procedure is different for each.
A- Recovery version:
If the ROM comes in Recovery version, you'll see system.new.dat inside the archive instead of system.img Follow these to get it extracted.
1) Download and extract the ROM
2) Download the this file Extract_System.rar and extract it somewhere.
3) Move everything except META-INF from the extracted folder in step 1 to the extracted folder in step 2.
4) Do "Shift" and right click to open CMD here. Now read the IMPORTANT.txt file. Open README.txt, copy one of the command and paste it in the CMD terminal. Press enter.
5) When done, you should see a new file named "new_system.ext4"
6) Open ext2explore.exe Click file and then Open Image, locate the "new_system.ext4" file.
7) When it's loaded, right click on the file on the right column and then save, point it to the "system" folder inside the extracted folder (extracted on step 2). When done move it to a new folder (name that folder "Port"). Also copy boot.img from the Port ROM to that folder.
B- SPFT version:
If the ROM is in SPFT format, then you'll see system.img and many other .img files.
Just follow Method 2 of Stock ROM extraction :cyclops:
If for some reasons it doesn't work, Follow these:
1) Download this program ImgExtractor.rarand extract it in the Port ROM folder alongside all the .img and .bin files.
2) Drag and drop system.img into the ImgExtractor.exe file. Wait till the end. You'll find the extracted system.img inside system_ folder.
3) Done! So easy
III. Porting
Once you have Stock ROM and Port ROM ready. You can now start to port.
A- Porting system:
1) Open Stock ROM and Port ROM folders side-by-side
2) Copy these files from Stock/system/lib: libcamalgo.so , libcameracustom.so . Paste them in Port ROM/system/lib folder, replace when prompted.
3) Go to Port/system/etc and delete "firmware" folder. Now go to Stock/system/etc and copy "firmware" folder from there to Port/system/etc
4) Open build.prop of port ROM with a text editor. Search for "qemu.hw.mainkeys" and set its value to "0". If it doesn't exist then add it at the end of build.prop. It should look like this qemu.hw.mainkeys=0 Sometimes the 0 value doesn't work, (guide by Nonta, stolen by Nayan Deka) you'll have to try with 1 (qemu.hw.mainkeys=1). If it still doesn't, then you'll have to use third-party navbars like "Simple Control" from Play Store.
5) Still inside build.prop, make sure that ro.sf.lcd_density value is 320. Save and exit.
A- Porting kernel:
1) Download Carliv Image Kitchen from this thread Extract it somewhere
2) Copy Stock boot.img to the extracted Carliv Image Kitchen/boot-ressources. Rename it to BootS.img
3) Move (yes, move) boot.img of Port ROM to Carliv Image Kitchen/boot-ressources. Rename it to BootP.img
4) Double click "Carliv.bat" and follow steps to extract both img files.
5) Now, open BootS folder, copy all the 9 files (not the ramdisk folder). Paste them in BootP folder. Replace when prompted.
6) Go back to Carliv Image Kitchen CMD window, make sure that BootP.img is selected. Now press "2" to repack the kernel.
7) When done, go to Carliv Image Kitchen/Output and copy the repacked boot.img (should be named boot_201x_xxx.img). Paste it in the Port ROM folder.
8) Copy the META-INF folder from "Extract_System.rar" archive. Paste it in Port ROM folder so that you have META-INF, system and boot.img.
9) Select all the files and zip them. Copy them to your Hot 2. Boot to recovery. Wipe data and factory reset. Click advanced wipe and select cache, dalvik-cache, system and slide to wipe. Go back and select your created ROM. Install!
10) Congratulations! You just ported a ROM to your Hot 2 :laugh:
Alternatively, you can simply follow these steps (only if Port ROM comes in SPFT format).
1) Extract both ROMs
2) Port Kernel using the above guide
3) Open SPFT, load the scatter file of your Stock ROM.
4) Uncheck everything. Click on boot column and load the ported kernel from step 2.
5) Click on system column and select system.img of the Port ROM
Flash your device with these two files.
!!! WARNING !!!
NEVER USE ANOTHER DEVICE'S SCATTER FILE.
THIS METHOD IS KNOWN TO EASILY CORRUPT SYSTEM PARTITION. YOU WILL HAVE TO MANUALLY FORMAT IT IN RECOVERY IF THAT HAPPENS.
Credits:
- xpirt
- Carliv
- And_PDA
Anyone is free to use my work. You are even free to give credits. But before doing so, remember that Android is about sharing. Open source is what makes Android's beauty. Many people work on MTK but they never expose all their porting secrets. Using this guide doesn't give you the right to port someone else's ROM without their permission.

Part 2: Crossporting
Before you continue, please understand these:
This section is intended for advanced users only. If you never ported a rom, please stop here!
- This Method is NOT fail-proof. Your device will simply bootloop even if you follow this guide.
- It does NOT work with AOSP based ROMs. Always bootloop.
- Only Cyanogenmod 12.1 ROMs are supported. CM-13 ROMs give black screen.
- It does NOT work if you port from sprout (4/8)
Click to expand...
Click to collapse
1) Get a stable CM-12.1 ROM for Hot 2. You can grab one here This will be called "Stock"
2) Get a CM-12.1 or based ROM for MT6582 or MT6592. This will be called "Port"
3) Extract both. Follow one of the methods in part 1 if needed.
4) Open both "Stock" and "Port" folders side-by-side.
5) Go to Stock/system delete (Guide by Nonta, Stolen by Nayan Deka) these: app, fonts, framework, media, priv-app, build.prop
6) Go to Port/system and copy app, fonts, framework, media, priv-app, build.prop from there to Stock/system. Copy any extra folder from Port/system to Stock/system (only extra folders. It's extra if it doesn't exist in stock rom).
7) Go to Port/system/bin and copy everything , paste them in Stock/system/bin. Skip when prompted! DO NOT REPLACE EXISTING ONES.
8) Repeat previous steps but this time copy from lib folder. Don't copy folders inside lib folder. Just .so files. Also do the same with files inside etc folder (copy just files inside "etc" folder) and xml files inside etc/permissions. Finally copy any extra folder that is in Port/system/etc folder and paste in Stock/system/etc.
9) Now go to Port/system/lib and copy these: libandroid.so, libandroid_runtime.so, libandroid_server.so, libandroidfw.so, libmedia_jni.so, libwebviewchromium.so, libwebviewchromium_loader.so, libwebviewchromium_plat_support.so now paste them in Stock/system/lib and replace the existing ones.
10) Repeat Step 7 with permissions folder, xbin folder and (Guide by Nonta, Stolen by Nayan Deka) vendor folder (including vendor subfolders).
11) Edit build.prop file in Stock/system and replace all MT6582 or MT6592 or sprout with MT6580. Also add the qemu.hw.mainkeys=0 line and make sure ro.sf.lcd_density value is 320
12) Now zip Stock folder and flash it.
If it doesn't boot then go to Part 3 for bug fixing.
Credits:
Special thanks to
@RendyAK
@Besik_13

Part 3: Fixing bugs
If your ROM boots, you'll likely get some bugs such as camera, sound, RIL etc.
For Stock or stock based ROMs
Audio fix:
Copy libaudio.primary.default from Stock ROM.
Camera fix:
If camera can't connect or force close
Copy libcamalgo.so and libcameracustom.so from stock ROM
If it still doesn't work, then copy all files with libcam from Stock ROM.
If it still persists, edit unpack boot.img using the method in Part 1. Compare both init.rc files and add extra lines from BootP/ramdisk/init.rc to BootS/ramdisk/init.rc
If camera size is wrong or swapped
Copy libcam.paramsmgr.so from Stock ROM
SIM card detection fix:
- Use Stock ROM's firmware folder
- Compare both build.prop files and make changes according (Guide by Nonta, stolen y Nayan Deka) to what is in Stock build.prop starting from # ADDITIONAL_BUILD_PROPERTIES DON'T TOUCH RINGTONE AND NOTIFICATIONS SETTINGS.
- Also think about restoring your IMEI or rewriting it using for example ToolHero.apk
For CM-12.1 or based ROMs
Bootloop fix:
- Unpack both BootS.img and BootP.img following the steps provided in Part 1.
- Compare init.environ.rc files and make changes according to what is in BootP init.environ.rc file. Only compare BOOTCLASSPATH section!
- Compare both init.rc files and add extra lines from BootP.
Shared by Rendy
RendyAK said:
Some more thing.
Fix bootloops:
After compare init.environ.rc.
Compare init.rc.
If some apps still FC after replace libwebchromexxx.so
Check the port updater-script/.img and check if there are some symlinks that arent in base one
Click to expand...
Click to collapse
If it still doesn't work, then sorry! I can't help further :fingers-crossed:
Sdcard detection fix:
If SD Card doesn't appear in file manager, follow these:
- Open Stock/system/framework/framework-res.apk file with 7-zip and go to res/xml. Extract storage_list.xml somewhere.
- Open Port/system/framework/framework-res.apk file with 7-zip and go to res/xml. Delete storage_list.xml. Drag and drop the storage_list.xml file you extracted in step (Guide by Nonta, stolen y Nayan Deka) one into 7-zip window.
RIL fix:
To fix RIL in cm-12.1 or based ROMs, follow:
- Unpack boot.img of your cm-12.1 or based ROM using the steps provided in Part 1. Let assume you named it BootS
- Go to BootS/ramdisk and edit init.modem.rc. Delete everything inside that file and copy paste the lines below.
Code:
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
on post-fs-data
write /proc/bootprof "post-fs-data: on modem start"
# Modem related device nodes
mkdir /data/nvram/md 0770 root system
mkdir /data/nvram/md2 0770 root system
# Build-in Modified - S
# insmod /system/lib/modules/ccci_plat.ko
# insmod /system/lib/modules/ccci.ko
# Build-in Modified - E
# chown radio radio /sys/class/BOOT/BOOT/boot/md
chown radio radio /sys/kernel/ccci/boot
# xplod: this is not in the original mtk file... But I have no
# idea what kind of sorcery normally sets them
chown radio radio /dev/ccci_fs
chown radio radio /dev/ccci_ioctl0
chown radio radio /dev/ccci_ioctl1
chown radio radio /dev/ccci_ipc_1220_0
chown radio radio /dev/ccci_md_log_rx
chown radio radio /dev/ccci_md_log_tx
chown radio radio /dev/ccci_monitor
chown radio radio /dev/ccci_pcm_rx
chown radio radio /dev/ccci_pcm_tx
(Guide by Nonta, stolen y Nayan Deka)
chown radio radio /dev/ccci_uem_rx
chown radio radio /dev/ccci_uem_tx
#SeLinux
mkdir /data/ccci_cfg 0770 system radio
restorecon /data/ccci_cfg
restorecon_recursive /protect_f
restorecon_recursive /protect_s
# Encrypt phone function
setprop vold.post_fs_data_done 1
service gsm0710muxd /system/bin/gsm0710muxd -s /dev/ttyC0 -f 512 -n 8 -m basic
class core
user root
group radio cache inet misc
disabled
oneshot
service gsm0710muxdmd2 /system/bin/gsm0710muxdmd2 -s /dev/ccci2_tty0 -f 512 -n 8 -m basic
class core
user root
group radio cache inet misc
disabled
oneshot
service muxreport-daemon /system/bin/muxreport
class core
user radio
group radio cache inet misc
disabled
oneshot
service ril-daemon /system/bin/rild
class core
socket rild stream 660 root radio
socket rild2 stream 660 root radio
socket rild3 stream 660 root radio
socket rild4 stream 660 root radio
socket rild-ims stream 660 root radio
socket rild-debug stream 660 radio system
socket rild-oem stream 660 radio system
socket rild-mtk-ut stream 660 radio net_bt
socket rild-mtk-ut-2 stream 660 radio net_bt
socket rild-mtk-modem stream 660 radio system
socket rild-atci stream 660 root radio
user root
group radio cache inet misc audio sdcard_r sdcard_rw log system
disabled
oneshot
service ril-daemon-md2 /system/bin/rildmd2
class core
socket rild-md2 stream 660 root radio
socket rild2-md2 stream 660 root radio
socket rild-debug-md2 stream 660 radio system
socket rild-oem-md2 stream 660 radio system
socket rild-mtk-ut-md2 stream 660 radio net_bt
socket rild-mtk-ut-2-md2 stream 660 radio net_bt
socket rild-mtk-modem-md2 stream 660 radio system
socket rild-atci-md2 stream 660 root radio
user root
group radio cache inet misc audio sdcard_r sdcard_rw log system
disabled
oneshot
service md_minilog_util /system/bin/md_minilog_util
user radio
disabled
oneshot
#
# Modem related services (Begin)
#
service permission_check /system/bin/permission_check
class main
user root
group nvram
group system radio
oneshot
service ccci_fsd /system/bin/ccci_fsd 0
user root
user radio
group radio system
class core
oneshot
service ccci2_fsd /system/bin/ccci_fsd 1
user root
user radio
group radio system
class core
oneshot
service ccci_mdinit /system/bin/logwrapper /system/xbin/strace -s 1024 /system/bin/ccci_mdinit 0
user root
user system
group radio system
class core
oneshot
service ccci2_mdinit /system/bin/ccci_mdinit 1
user root
user system
group radio system
class core
oneshot
service ccci_rpcd /system/bin/ccci_rpcd 0
user radio
group radio system
class core
oneshot
service ccci2_rpcd /system/bin/ccci_rpcd 1
user radio
group radio system
class core
oneshot
service pppd_gprs /system/bin/pppd_dt /dev/ttyACM0 debug noauth refuse-eap usepeerdns nodetach
user root
group radio cache inet misc
disabled
oneshot
#Add by T.Zh for ppp daemon
service pppd /system/bin/pppd file /data/misc/ppp/ppp_options
user root
disabled
oneshot
#
#
# Modem related services (End)
#
#Add by hp.chen for
#
# Telephony Early Read service
#
service terservice /system/bin/terservice
class core
(Guide by Nonta, stolen y Nayan Deka)
user radio
group radio cache inet misc
oneshot
on property:ril.muxreport=1
start muxreport-daemon
- Repack the BootS.img and flash it.
- Download this file Fix_RIL_CM12.1.zip and flash it in recovery.
- Reboot your device, RIL should start to work. If not, try restoring or rewriting your IMEI.
Other bugs can be fixed using stock rom bug fixing methods as well
Credits:
Special thanks to
@RendyAK
@Besik_13

One more ...

good work,hope u will port more rom for our device :good:

Anything specific for 6.0

AonSyed said:
Anything specific for 6.0
Click to expand...
Click to collapse
This guide should apply without problem.

Some more thing.
Fix bootloops:
After compare init.environ.rc.
Compare init.rc.
If some apps still FC after replace libwebchromexxx.so
Check the port updater-script/.img and check if there are some symlinks that arent in base one

Can rendy tool be used to port Hot 3 firmware automatically?
Sent from my Infinix X510 using XDA-Developers mobile app

Mysteryagr said:
Can rendy tool be used to port Hot 3 firmware automatically?
Sent from my Infinix X510 using XDA-Developers mobile app
Click to expand...
Click to collapse
I'm not sure
Plus it doesn't seem to be stable.
You need to use the crossporting method for the Hot 3 ROM to work

Nonta72 said:
I'm not sure
Plus it doesn't seem to be stable.
You need to use the crossporting method for the Hot 3 ROM to work
Click to expand...
Click to collapse
Okay, I'm waiting for XUI version 2
Then I will give it a try
Sent from my Infinix X510 using XDA-Developers mobile app
---------- Post added at 12:03 PM ---------- Previous post was at 11:39 AM ----------
I know it is a stupid question, but how to edit "updater-script" cause always when I try to edit it I get flashing errors in recovery
Sent from my Infinix X510 using XDA-Developers mobile app

Mysteryagr said:
Okay, I'm waiting for XUI version 2
Then I will give it a try
Sent from my Infinix X510 using XDA-Developers mobile app
---------- Post added at 12:03 PM ---------- Previous post was at 11:39 AM ----------
I know it is a stupid question, but how to edit "updater-script" cause always when I try to edit it I get flashing errors in recovery
Sent from my Infinix X510 using XDA-Developers mobile app
Click to expand...
Click to collapse
Edit with Notepad ++ program
Make sure every line ends with an " ; " (without the quotes)

Nonta72 said:
Edit with Notepad ++ program
Make sure every line ends with an " ; " (without the quotes)
Click to expand...
Click to collapse
Thanks, btw I noticed that there are two roms for Hot 3 (3G Version) one with A1 in its name and the second has A2 in its name, do you know what's the difference?
Sent from my Infinix X510 using XDA-Developers mobile app

Mysteryagr said:
Thanks, btw I noticed that there are two roms for Hot 3 (3G Version) one with A1 in its name and the second has A2 in its name, do you know what's the difference?
Sent from my Infinix X510 using XDA-Developers mobile app
Click to expand...
Click to collapse
Nope
But I assume they are same

Tried porting Hot 3 using cross porting method and as my previous attempted, ended in bootloop :/
Sent from my Infinix X510 using XDA-Developers mobile app

Mysteryagr said:
Tried porting Hot 3 using cross porting method and as my previous attempted, ended in bootloop :/
Sent from my Infinix X510 using XDA-Developers mobile app
Click to expand...
Click to collapse
I will get back to you soon.

Nonta72 said:
I will get back to you soon.
Click to expand...
Click to collapse
Okay, take your time
Sent from my Infinix X510 using XDA-Developers mobile app

@Nonta72 there is something not clear for me in cross porting method, after step 7, any existing matching file should be skipped, as we do in step 7?
I mean in permission, xbin, vendor.. etc
Or they should be replaced?
Thanks in advance ^^
Sent from my Infinix X510 using XDA-Developers mobile app

Mysteryagr said:
@Nonta72 there is something not clear for me in cross porting method, after step 7, any existing files should be skipped!?
I mean in permission, xbin, vendor.. etc
Or they should be replaced?
Thanks in advance ^^
Sent from my Infinix X510 using XDA-Developers mobile app
Click to expand...
Click to collapse
Seemed clear to me
You shouldn't replace them. They should be skipped.
And something is wrong with your XUI porting.
You also need to port the kernel. I noticed that using the stock boot.img or boot.img from XUI (Note port) won't make it boot.
So follow kernel porting step too. I just applied crossporting method and kernel porting method, they worked.
USE XUI FROM HOT NOTE AS BASE! DON'T USE INFINIX 5.1 OR ANDROID ONE 5.1
:good:

Thanks for the tips, will try again today ??
Sent from my Infinix X510 using XDA-Developers mobile app

Related

[HOW-TO][TUTORIAL]ROOT, DEODEX, BUILD KERNEL, BUILD CUSTOM ROM and MORE

Hi all,
In this thread, I will try to share the knowledge I have on deodexing, making custom ROMs, modifying initramfs, building kernel and much more.
Please check the below posts for each of these tutorials.
Hope this opens doors to many new ROM and Kernel developers.
NOTE: THESE TUTORIALS ARE WRITTEN FOR I9100G. WILL NOT WORK ON OTHER DEVICES. I DON'T TAKE ANY RESPONSIBILITY IF YOU MESS UP AND BRICK YOUR DEVICE OR ANYTHING ELSE. USE AT YOUR OWN RISK.
Deodexing Stock Rom
For GINGERBREAD ROMS:
What you need to have:
xUltimate v2.3.3 - you can download it HERE (Thanks and Credits to Xeudoxus for this awesome app)
Rooted kernel with busybox
JDK installed on your Windows system
If adb is not available in your windows PC, in xUltimate folder open "jar" folder. You'll find adb there.
Extract stock app & framework folders and Deodex:
Connect your device to computer.
Start xUltimate (double-click on Main.exe)
Select option 1. (Pull /system/app)
Once option is done, select option 2. (Pull /system/framework)
In the same folder, now you'll see two new folders (origi_app, origi_frame)
For I9100G, go to origi_app folder and delete apk and odex files of Maps, PhoneSky and VoiceSearch.
Select option 3 in Main menu (Deodex /system/app)
Once its done, select option 4 in Main menu (Deodex /system/framework)
DONE!!
Now you'll see two new folders done_app and done_frame.
Push deodexed app and framework to device:
Connect your device to PC in USB debugging mode.
Copy done_app and done_frame folders to root of sdcard (/sdcard).
Open Windows command prompt and type the below commands.
Code:
[LIST]
[*]adb shell
[*]su
[*]stop
[*]mount -o remount,rw /dev/block/mmcblk0p9 /system
[*]rm /system/app/*.odex
[*]rm /system/framework/*.odex
[*]busybox cp /sdcard/done_app/* /system/app/
[*]busybox cp /sdcard/done_frame/* /system/framework/
[*]chmod 644 /system/app/*
[*]chmod 644 /system/framework/*
[*]mount -o remount,ro /dev/block/mmcblk0p9 /system
[*]sync
[*]reboot recovery
[/LIST]
In Recovery, Wipe Cache and Wipe Data/Factory reset.
Reboot.
Now you've deodexed app and framework.
For ICS ROMS:
For ICS Roms, the process is quite easy. (Thanks and Credits to jaydvn.)
Download the attached zip file.
Extract it on your windows PC.
Copy your /system/app to _app folder
Copy your /system/framework to _framework folder.
Run AutoDEOToolMain.bat
Follow the instructions.
deodexed jars and apks will be found in deodexed_APK and deodexed_JAR.
Push deodexed app and framework to device:
Connect your device to PC in USB debugging mode.
Copy deodexed_APK and deodexed_JAR folders to root of sdcard (/sdcard).
Open Windows command prompt and type the below commands.
Code:
[LIST]
[*]adb shell
[*]su
[*]stop
[*]mount -o remount,rw /dev/block/mmcblk0p9 /system
[*]rm /system/app/*.odex
[*]rm /system/framework/*.odex
[*]busybox cp /sdcard/deodexed_APK/* /system/app/
[*]busybox cp /sdcard/deodexed_JAR/* /system/framework/
[*]chmod 644 /system/app/*
[*]chmod 644 /system/framework/*
[*]mount -o remount,ro /dev/block/mmcblk0p9 /system
[*]sync
[*]reboot recovery
[/LIST]
In Recovery, Wipe Cache and Wipe Data/Factory reset.
Reboot.
Done.
Other references:
How to deodex ICS roms by samyam2002000
Enjoy.
Building Kernel
Okay. Let's learn how to build kernel for our I9100G. There are many ways to build. I am just presenting here the way I build and make kernel.
NOTE 1: Follow the instructions exactly.
NOTE 2: Kernel is opensource. If you make any changes to it, you're expected to share your source. (Usually people share it over github )
NOTE 3: FLASHING KERNEL IS RISKY AND DANGEROUS. BE CAREFUL. BUILD AND FLASH ON YOUR OWN RISK.
What you need to have:
Ubuntu 10.04 and above (I use 10.04 )
ARM tool chain (Download HERE. Click on IA32 GNU/Linux TAR under Advanced Packages)
Samsung's opensource kernel for I9100G (Download HERE. Go to Mobile->Mobile Phone-> Select I9100G and download the zip)
Setting up toolchain:
Extract the tar you downloaded(Suggestion: Extract to one folder where you can have everything. In my case /home/superatmos/build_kernel).
After extracting, you'll see a folder named arm-2010q1. Inside there will be many folders (ex. bin, lib and so on.)
Folder structure will be: /home/<your_name>/build_kernel/arm-2010q1
Setting up kernel:
Extract the zip you've downloaded from samsung's opensource.
You'll find two zips.
Extract GT-I9100G_Kernel.tar.gz to /home/<your_name>/build_kernel/
Folder structure: /home/<your_name>/build_kernel/GT-I9100G_Kernel
Setting up initramfs:
Samsung's zImage is divided into two parts: Opensource kernel (which you downloaded from samsung's website) and initramfs (which is root file system to boot up the device).
I am providing my initramfs HERE. (You can use it as it is or modify it. But give credits to me. )
Extract the downloaded zip and copy it to /home/<your_name>/build_kernel/
Folder structure: /home/<your_name>/build_kernel/initramfs
Now the entire setup is ready. Let's start modifying kernel configuration.
Setting up kernel config:
Go to /home/<your_name>/build_kernel/GT-I9100G_Kernel/arch/arm/configs folder.
Copy t1_defconfig file and paste it in kernel root folder (/home/<your_name>/build_kernel/GT-I9100G_Kernel/).
Rename t1_defconfig to .config in kernel root folder.
Now open Makefile which is in your kernel root folder(/home/<your_name>/build_kernel/GT-I9100G_Kernel/).
Modify the below lines (I guess line 195 and 196).
Code:
ARCH ?= arm
CROSS_COMPILE ?= /home/<your_name>/build_kernel/arm-2010q1/bin/arm-none-linux-gnueabi-
Save and close.
Modifying kernel configuration:
Now open .config file(which you renamed). If its not seen, it might be hidden. Go to View->Show hidden files and there you go.
Do the below things:
Adding local version:
Change CONFIG_LOCALVERSION=" " to anything you like. I add this way:
CONFIG_LOCALVERSION="-I9100G-superatmos"
Adding initramfs path:
You need to let kernel know the path from which it needs to take initramfs.
Change CONFIG_INITRAMFS_SOURCE=" " to ../initramfs (In this tutorial it's the path. If you had copied anywhere else, give the path properly).
Enough for now. Once you get experience, you can modify many configurations as per your liking and save. This configuration can be changed by GUI too with the command make menuconfig.
The Important part: Building the kernel:
Open terminal.
Go to path /home/<your_name>/build_kernel/GT-I9100G_Kernel/
Type make.
THAT'S ALL. YOUR zImage is ready and is available in /home/<your_name>/build_kernel/GT-I9100G_Kernel/arch/arm/boot/zImage.
Install the zImage on the device:
Go to the path where zImage is present and type the below line in command line.
Code:
tar cvf I9100G_kernel.tar zImage
Flash the tar using odin.
DONE. CONGRATULATIONS. NOW YOU'VE YOUR OWN KERNEL.
Other references:
Building Kernel by bedalus
How to compile your first Nexus Kernel by djjonastybe
Give me your feedback so that I can improve this tutorial. And post here about how your build went. All the best.
Making custom ROM
Let's move on to make a custom ROM.
Inputs/Feedback/Suggestions are more than welcome. Lets improve this tutorial together for the betterment of the android community.
Steps involved in making a custom ROM:
Getting the system dump from the device.
Deodexing app and framework folders.
Creating various mods by modifying framework and system files.
Modifying build.prop and adding tweaks.
Making META-INF folder and writing an updater-script (edify scripting).
Signing the ROM and making a flashable zip.
Folder Structure:
Before going forward, let's follow the below structure folder to make the tutorial more understandable.
Let our ROM name be CustomROM. The folder structure will be C:\Users\<your name>\CustomROM.
Let's move step by step. Are you ready??
<b>Getting the system dump from the device:​
</b>
Make sure USB debugging is ON and connect your device to the PC.
Open command prompt on your windows PC and go to CustomROM folder path.
Type adb devices. You should be able to see the device detected. (If not check environmental variables whether adb is in system path or not. If not present, add the adb path.)
Type the below command to get the dump of system folder.
Code:
adb pull /system system/
Now inside the folder CustomROM, you should be able to see system folder with many folders like app, etc, framework etc inside.
Done with first step.
<b>Deodexing app and framework folders:​
</b>
Look HERE how to deodex app and framework folders. Copy the app and framework folders to xUltimate folder, rename them to origi_app and origi_frame and follow the given link to deodex.
NOTE: After deodexing, merge origi_app folder with app folder under C:\Users\<your name>\CustomROM\system\app and origi_frame with framework folder under C:\Users\<your name>\CustomROM\system\framework.
<b>Creating various mods by modifying framework and system files​
</b>
Okay. This the section where your hardwork, innovation and talent comes in. You can use the mods available already, create your own mods, port various mods from other devices and so on.
Below is a list of various mods which can be ported on to I9100G. All the credits go these respective thread owners. Thanks to them.
Lidroid 14 toggle mod
Extended power menu with/without header
CRT Off Animation & SIP Over LTE/HSPA
Swipe to remove notifications
NOTE: Let me know more mods with links so that I can add here.
<b>Modifying build.prop and adding tweaks​
</b>
Okay. This is one of those files where you name your ROM(to be visible in settings. ) and add many tweaks.
To name your ROM (to be visible in settings), change the below code.
Code:
ro.build.display.id=CustomROM v1.0
Check the below links for many other tweaks. All credits go to respective thread owners. Thanks to them.
build.prop tweaks by TheFrankenstain
build.prop tweaks by dhlalit11
<b>
Making META-INF folder and writing an updater-script (edify scripting)​
</b>
Once you're done with all the modifications, mods and additions, its time to create META-INF folder and make the updater script. Once the user flashes the ROM zip, this is the script that runs and does everything written inside the script. PLEASE BE CAREFUL WITH THIS. TAKE REFERENCE FROM OTHER (SAME DEVICE) ROMS' UPDATER-SCRIPT. (In this case, take reference from other GT-I9100G roms.)
Check the below links for tutorial and how-to on writing edify script and making updater script. All credits go to respective owners of the threads. Thanks to them.
Edify Scripting, Making Flashable ZIPs, ZIP Signing & Key Creation
Edify Scripting Notes
How to Write an Updater-Script with Edify Code
Edify Installation Script Syntax's
NOTE: system folders path, boot/kernel partition path, modem partition path and so on are COMPLETELY DIFFERENT for DIFFERENT DEVICES. Check the partitions for your device properly, carefully and then work on updater-script. TAKE HELP OR REFERENCE FROM OTHER ROM DEVELOPERS FOR YOUR DEVICE.
Lets move on to last step. Making a signing and making a flashable zip.
<b>Signing the ROM and making a flashable zip​
</b>
Make sure, now you should be able to find two folders (META-INF and system) inside C:\Users\<your name>\CustomROM.
Check in THIS thread for test signing your ROM. It WORKS with GT-I9100G. TESTED.
or Check THIS thread to create your own signing key and certificate.
Now you're done with making a custom ROM. Hope to see more custom ROMs from many users.
For porting ROMs, refer THIS tutorial. (thanks and credits to ayushrox)
Give me your feedback so that I can improve this tutorial. And post here about how your custom ROM making went. All the best.
Root and busybox
If you don't want to modify anything else except to have root and busybox for the stock rom, Check the below link.
How to ROOT/UNROOT your I9100G via Stock Recovery (Credits: Ryuinferno)
GOt error wHILE DEODEXING USING XULTIMATE
galaxy sl STOCK ROMS ARE MUCH BETTER THAN g
Starting Email.odex
*****************************************
* Deodexing... *
Error occured while loading boot class path files. Aborting.
org.jf.dexlib.Code.Analysis.ClassPath$ClassNotFoundException: Could not find sup
erclass Ljava/awt/Component;
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.loadSuperclass(ClassPa
th.java:784)
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.<init>(ClassPath.java:
668)
at org.jf.dexlib.Code.Analysis.ClassPath.loadClassDef(ClassPath.java:280
)
at org.jf.dexlib.Code.Analysis.ClassPath.initClassPath(ClassPath.java:16
3)
at org.jf.dexlib.Code.Analysis.ClassPath.InitializeClassPath(ClassPath.j
ava:131)
at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:105)
at org.jf.baksmali.main.main(main.java:278)
Error while loading class Lgnu/activation/viewers/ImageViewer; from file .\origi
_app\Email.odex
Error while loading ClassPath class Lgnu/activation/viewers/ImageViewer;
Press any key to continue . . .
tarunagg said:
GOt error wHILE DEODEXING USING XULTIMATE
galaxy sl STOCK ROMS ARE MUCH BETTER THAN g
Starting Email.odex
*****************************************
* Deodexing... *
Error occured while loading boot class path files. Aborting.
org.jf.dexlib.Code.Analysis.ClassPath$ClassNotFoundException: Could not find sup
erclass Ljava/awt/Component;
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.loadSuperclass(ClassPa
th.java:784)
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.<init>(ClassPath.java:
668)
at org.jf.dexlib.Code.Analysis.ClassPath.loadClassDef(ClassPath.java:280
)
at org.jf.dexlib.Code.Analysis.ClassPath.initClassPath(ClassPath.java:16
3)
at org.jf.dexlib.Code.Analysis.ClassPath.InitializeClassPath(ClassPath.j
ava:131)
at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:105)
at org.jf.baksmali.main.main(main.java:278)
Error while loading class Lgnu/activation/viewers/ImageViewer; from file .\origi
_app\Email.odex
Error while loading ClassPath class Lgnu/activation/viewers/ImageViewer;
Press any key to continue . . .
Click to expand...
Click to collapse
Which version of xUltimate you're using? only x2.3.3 supports GT-I9100G. Please follow the steps I mentioned above and you should be able to deodex.
ok will try that version also
superatmos said:
Which version of xUltimate you're using? only x2.3.3 supports GT-I9100G. Please follow the steps I mentioned above and you should be able to deodex.
Click to expand...
Click to collapse
Sent from my GT-I9100G using XDA App
Does this script work for ICS odexed apk's?
zylor said:
Does this script work for ICS odexed apk's?
Click to expand...
Click to collapse
I am not sure about it since I never tested myself on ICS since its not yet released for I9100G.
tarunagg said:
ok will try that version also
Sent from my GT-I9100G using XDA App
Click to expand...
Click to collapse
Did you try? Were you able to deodex using this tutorial?
next action
manage to deodex using above step.
once deodex what is the next action?
[email protected] said:
manage to deodex using above step.
once deodex what is the next action?
Click to expand...
Click to collapse
After deodexing, did you push deodexed app and framework folder back onto device? (third section of deodex post). If done, then you can apply themes to it, use apks of other roms and so on.
Enjoy.
hey superatmos have u tried the dsiXDA kitchen with our phone
samyam2002000 said:
hey superatmos have u tried the dsiXDA kitchen with our phone
Click to expand...
Click to collapse
No. Not yet. Will try it and check whether it works with I9100G.
waiting for the rest of it patiently. hope u get time quite soon
samyam2002000 said:
waiting for the rest of it patiently. hope u get time quite soon
Click to expand...
Click to collapse
Yes. Very soon. Keep your linux environment ready to build your own kernel.
Always Got Error
Starting Maps.odex
*****************************************
* Deodexing... *
Error occured while loading boot class path files. Aborting.
org.jf.dexlib.Code.Analysis.ClassPath$ClassNotFoundException: Could not find int
erface Landroid/view/MenuItem$OnActionExpandListener;
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.loadAllImplementedInte
rfaces(ClassPath.java:823)
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.<init>(ClassPath.java:
683)
at org.jf.dexlib.Code.Analysis.ClassPath.loadClassDef(ClassPath.java:280
)
at org.jf.dexlib.Code.Analysis.ClassPath.initClassPath(ClassPath.java:16
3)
at org.jf.dexlib.Code.Analysis.ClassPath.InitializeClassPath(ClassPath.j
ava:131)
at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:111)
at org.jf.baksmali.main.main(main.java:282)
Error while loading class Lcom/google/googlenav/actionbar/d; from file .\origi_a
pp\Maps.odex
Error while loading ClassPath class Lcom/google/googlenav/actionbar/d;
Press any key to continue . . .
tarunagg said:
Always Got Error
Starting Maps.odex
*****************************************
* Deodexing... *
Error occured while loading boot class path files. Aborting.
org.jf.dexlib.Code.Analysis.ClassPath$ClassNotFoundException: Could not find int
erface Landroid/view/MenuItem$OnActionExpandListener;
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.loadAllImplementedInte
rfaces(ClassPath.java:823)
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.<init>(ClassPath.java:
683)
at org.jf.dexlib.Code.Analysis.ClassPath.loadClassDef(ClassPath.java:280
)
at org.jf.dexlib.Code.Analysis.ClassPath.initClassPath(ClassPath.java:16
3)
at org.jf.dexlib.Code.Analysis.ClassPath.InitializeClassPath(ClassPath.j
ava:131)
at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:111)
at org.jf.baksmali.main.main(main.java:282)
Error while loading class Lcom/google/googlenav/actionbar/d; from file .\origi_a
pp\Maps.odex
Error while loading ClassPath class Lcom/google/googlenav/actionbar/d;
Press any key to continue . . .
Click to expand...
Click to collapse
Please read the instructions. I mentioned to remove (Maps.apk, Maps.odex, PhoneSky.apk, PhoneSky.odex, VoiceSearch.apk and VoiceSearch.odex). These files give issue while deodexing I9100G.
Building kernel section updated
Hi,
Building kernel updated in 3rd post. Start building your own kernel.

[TOOL] NEW <<--->> OLD Bootloader ROM Converter v1.0

P990 ROM Converter
from New BootLoader to Old and vice versa​
Actually this tool is Tonyp’s idea. All credits to him.
He asked me if I am interested in making a script and automating the rom porting from one bootloader to the other and he assisted me with all the changes that need to be done.
Due to different EOL (end of line) termination in text files between UNIX-Linux (LF) and windows (CRLF), I had to make bash (linux) scripts necessarily. The good thing is that the tool can be used in both windows and linux systems.​Installation:
Download and extract the attached ROM-Converter-tools.zip package anywhere you like.
Download and extract in the same folder, a newer ROM-Converter-scripts.zip if exists.
For Windows systems only:
Install Cygwin following the instructions below:
Download setup-x86.exe from here http://cygwin.com/install.html
Attention!! Even if you are running x64 windows system install the x86 version. DO NOT install the x64 cygwin version because two binaries (mkbootfs.exe & mkbootimg.exe used to pack boot.img do not work properly).
Run the setup-x86.exe, when the list of packages is shown make sure you add the following:
Expand Archive and select zip & unzip to be installed
Expand Utils and select cpio to be installed
Expand Perl and select ‘perl: Larry Wall’s Practical..’ and perl_vendor to be installed
(If you are already using cygwin run setup again and add the above packages to be installed.)
For Linux systems only:
Download the attached linux-mkboot-binaries.zip (mkbootfs, mkbootimg), extract them in tool folder and remove the windows ones (mkbootfs.exe, mkbootimg.exe).​How to use it:
Put the source ROM.zip(s) in the 'source_zips' folder (otherwise you’ll be prompted to drag n’ drop it in terminal)
Open Cygwin. Type cd (leave a space after cd) and type /cygdrive/c/dir1/dir2/../ROM-Converter-tools
where “c/dir1/dir2/../ROM-Converter-tools” is the full path of the folder you extracted the convert-tool package (e.g C:\dir1\dir2\..\ROM-Converter-tools) and press enter.
In case of long pathname, instead of typing the whole of it, use one of the following tips to easily change to tool's path.
Tip#1: After you type cd , drag n’ drop from windows explorer into cygwin terminal, the folder "ROM-Converter-tools" and it wiil automatically be converted to ‘/cygdrive/c/dir1/dir2/../ROM-Converter-tools’ press enter and that’s it.
Tip#2: After cd /cygdrive/c/ type the 1st one or two letters of the next subdir and autocomplete it's name with TAB.
Type one of these commands in cygwin terminal:
Code:
./convert_rom.sh -stepmode #--> starts in step-mode for debugging purposes
./convert_rom.sh #--> runs unattended (with no pauses).
​What it does:
The scripts use as input the 'files2convert.txt' which contains all possible files needed to be converted.
This is for compatibility purposes to support as many roms as possible and for future changes.
files2convert.txt
Code:
/ramdisk/fstab.star
/ramdisk/fstab.p990
/ramdisk/init.cm.rc
/ramdisk/init.cm-star.rc
/ramdisk/init.star.rc
/system/etc/vold.fstab
/system/bin/setup-recovery
/system/bin/check_sdcard.sh
/META-INF/com/google/android/updater-script
More files can easily be added for conversion if needed.
The converter:
Extracts source ROM zip
Unpacks the boot.img
Reads the above files, replacing partitions' mount points, among some othe things, for the selected bootloader
Replaces the kernel image for the selected bootloader
Builds new boot.img
Creates new converted ROM zip
Under 'kernels' folder there are already included the two latest Kowalski kernel images (zImage) for old & new BL and its modules.
You can add more kernels and you’ll be prompted to choose the desired one when converting a ROM (if more than one is found ).
Read how to do this:
kernels folder contains all kernel images (zImage), kernel modules and any other file the kernel needs.
for each kernel there are:
file(s) named: prefix-KernelName[-ver].zImage
folder(s) named: [prefix-]KernelName[-ver]Kernel
where:
prefix must be oldbl or newbl (depending on which bootloader this kernel is for.
KernelName[-ver] is whatever you like [and optionaly its version].
zImage is the extension of the kernel image.
How to maintain kernels folder
A. Update existing kernels
Download the desired kernel package and open it.
Replace its kernel zIamge in kernels folder
Extract its modules and any other file needed and replace all existing ones
B. Add kernels
Download the kernel package and open it.
Find the zImage inside package and extract it into kernels
Rename it this format: prefix-KernelName[-ver].zImage
Create a folder named: prefix-KernelName[-ver]. It will be used to keep kernel's modules and other files needed. If this kernel is released for both bootloaders and its modules are identicaly on both bootloaders (like the existing kowalski one) then name the folder only KernelName[-ver] (without prefix).
Inside this [prefix-]KernelName[-ver] folder create a subdir tree lib\modules
Extract in lib\modules all kernel's modules from kernel package.
If any other file is needed by kernel then create it's subdir tree (assuming that [prefix-]KernelName is the system folder of the kernel package) and extract it there.
Attention: Current version will hopefully work on CM-based ROMs.
Stock based ROMs need more files to be changed, but they are not included yet, because I don't have the whole info needed.
Hopefully @rugglez or someone else will be willing to help.
Till then avoid converting stock-based roms, (or if you do try, then after converting replace the boot.img in converted rom and "system/lib/modules/*" at least with a working boot.img and modules from another stock-based rom, for this bootloader of course. This could work but I am not the expert to say)​
ChangeLog:
Version 1.0 Aug 23, 2013
- The two convert2xxx_bl.sh scripts are now integrated into one script convert_rom.sh.
- The new convert_rom.sh also accepts an optional switch [-stepmode].
Code:
./convert_rom.sh -stepmode #--> starts in step-mode for debugging purposes
./convert_rom.sh #--> runs unattended (with no pauses).
- A technique added to preserve whitespaces in converted lines. So converted files keep margins and whitespaces of the source ones.
- Script checks whether source rom is a newbl or an oldbl one, displays an error message if rom is not for the expected bootloader and exits.
Version 0.3b Aug 23, 2013
-a typo fixed in converting scripts
Version 0.2b Aug 23, 2013
-liblgeril.so is also replaced with the one for the oldbl or newbl accordingly.
-A forced removal (switch -f) added when removing files and dirs just in case.
-Converted ROM name will be built automatically from the source name suffixed by -oldbl or -newbl accordingly. (If source rom's name contains 'newbl' or 'oldbl' it will be substituted by 'oldbl' or 'newbl' accordingly)
-Converted ROMs are now created under 'converted_roms' folder.
-Converting to oldbl: Files 'check_sdcard.sh' and 'lgdrm.img' are being removed if exist (as they are not used)
-Converting to newbl: Charger dependent images are also copied in ramdisk (not only the charger binary).
-Kernel modules will also be replaced with the ones coming with specific kernel image.
-Kowalski Kernel images & modules, in kernels folder, are replaced with latest ones dated:2013072013. (it was my fault, the previous ones were downloaded from "releases" download folder and were dated 20230303)
-Some changes in display messages.
Version 0.1b Aug 19, 2013
-1st beta version​
I really don't want to have all of the credits.
While it's been my idea to create such a script and I provided the input on what needs to be changed by the script, I couldn't have done it on my own.
I both lack the skills(!) and time.
Steve would say:
Anyways, don't leech. If this helps someone, donations are appreciated:
Donate to spyrosk
Donate to me​
spyrosk said:
To convert a new-bl rom to an old-bl rom: Type ./convert2old_bl.sh
To convert an old-bl rom to a new-bl rom: Type ./ convert2new_bl.sh
​
Click to expand...
Click to collapse
Thanks Android tool guru @spyrosk....and thanks @tonyp
just trying it out. A small comment....people might mistake this....there is no space between the / AND convert2new_bl.sh command line....should be the same with oldbl.sh command....isnt it?
thought of giving a feedback about this.
thanks once again
EDIT: battery charge script cannot be opened error....and cannot be removed error....
Creating new ROM zip ... zip warning: Permission denied
zip warning: Permission denied
something went wrong please zip contents in rom folder manually
done.
SREEPRAJAY said:
Thanks Android tool guru @spyrosk....and thanks @tonyp
just trying it out. A small comment....people might mistake this....there is no space between the / AND convert2new_bl.sh command line....should be the same with oldbl.sh command....isnt it?
thought of giving a feedback about this.
thanks once again
EDIT: battery charge script cannot be opened error....and cannot be removed error....
Creating new ROM zip ... zip warning: Permission denied
zip warning: Permission denied
something went wrong please zip contents in rom folder manually
done.
Click to expand...
Click to collapse
Hi my friend,
First of all sorry again for deleted post(s)..
and thank you.
The "typo" is corrected. Actually it was not a typo but I have noticed that it happens when pasting text from another editor.
Which ROM did you try to convert?
battery charge script cannot be opened error??? On which step did it happen?
I don't try to open any battery charge script
Did you add any file in "files2convert.txt"?
Very interesting tool.
Last july 7th I asked you if this were possibile and didn't have any reply. Now I'm happy that Tonyp convinced you.
Sent from my LG-P990 using xda app-developers app
wals46 said:
Very interesting tool.
Last july 7th I asked you if this were possibile and didn't have any reply. Now I'm happy that Tonyp convinced you.
Sent from my LG-P990 using xda app-developers app
Click to expand...
Click to collapse
I was on vacation sorry and when I came back I forgot to reply.
By that time I couldn't tell for sure anyway, before I have the total "picture" of the work that must be done, I mean.
@spyrosk,
my friend
Which ROM did you try to convert? Latest Avatar 3.1 Nightly OLD to NEW BL
battery charge script cannot be opened error??? On which step did it happen?I don't try to open any battery charge script It happened just the step before making the new ROM Zip
Did you add any file in "files2convert.txt"? NO
Nevertheless, I will try to flash the ROM and see what happens
EDIT:
Just now, I tried to do the PAC Man by Metallica for the Old BL and had the same error of battery charge script....
Same in Django Adios Amigo 1.6.5 to OldBL....see the script error below:
STEP 2: EXTRACTING BOOT.IMG ...
Press [enter] when ready
rm: remove write-protected regular file `out/ramdisk/charger'?
rm: cannot remove `out/ramdisk': Directory not empty
mkdir: cannot create directory `out': File exists
STEP 5: PACKING NEW BOOT.IMG ...
Press [enter] when ready
Selected kernel: kernels/oldbl-Kowalski-126.zImage
Using base address 0x10000000
Using command line ''
error: cannot open './ramdisk/charger' for read
rm: remove write-protected regular file `out/ramdisk/charger'?
rm: cannot remove `out/ramdisk': Directory not empty
Hope this helps in checking....
SREEPRAJAY said:
@spyrosk,
my friend
Which ROM did you try to convert? Latest Avatar 3.1 Nightly OLD to NEW BL
battery charge script cannot be opened error??? On which step did it happen?I don't try to open any battery charge script It happened just the step before making the new ROM Zip
Did you add any file in "files2convert.txt"? NO
Nevertheless, I will try to flash the ROM and see what happens
EDIT:
Just now, I tried to do the PAC Man by Metallica for the Old BL and had the same error of battery charge script....
Same in Django Adios Amigo 1.6.5 to OldBL....see the script error below:
STEP 2: EXTRACTING BOOT.IMG ...
Press [enter] when ready
rm: remove write-protected regular file `out/ramdisk/charger'?
rm: cannot remove `out/ramdisk': Directory not empty
mkdir: cannot create directory `out': File exists
STEP 5: PACKING NEW BOOT.IMG ...
Press [enter] when ready
Selected kernel: kernels/oldbl-Kowalski-126.zImage
Using base address 0x10000000
Using command line ''
error: cannot open './ramdisk/charger' for read
rm: remove write-protected regular file `out/ramdisk/charger'?
rm: cannot remove `out/ramdisk': Directory not empty
Hope this helps in checking....
Click to expand...
Click to collapse
I just converted Avatar-3.1 from old to new. No errors at all.
I don't like the write-protected error: rm: remove write-protected regular file `out/ramdisk/charger'
So it tries after that to remove the out directory but of course it's not empty.
Well,
Remove out directory manually and try again from the beginning..
After step 5, Before you continue to next step try to remove the whole out directory manually again.
Try also to give your account full control to the converter's folder.
This problem seems to he a windows security permission issue. Are you an administrator on the system you use?
-------------------------------------------------------------------
Stock based ROMs need more files to be changed, but they are not included yet, because I don't have the whole info needed.
Hope @rugglez or someone else will be willing to help.
Till then avoid converting stock-based roms,( or after converting replace the boot.img in converted rom with a working boot.img from another stock-based rom for the same bootloader of course. This may work)
Try ONLY CM-based roms.
I forgot to write it in OP. I'll do it asap.
spyrosk said:
I just converted Avatar-3.1 from old to new. No errors at all.
I don't like the write-protected error: rm: remove write-protected regular file `out/ramdisk/charger'
So it tries after that to remove the out directory but of course it's not empty.
Well,
Remove out directory manually and try again from the beginning..
After step 5, Before you continue to next step try to remove the whole out directory manually again.
Try also to give your account full control to the converter's folder.
This problem seems to he a windows security permission issue. Are you an administrator on the system you use?
-------------------------------------------------------------------
Stock based ROMs need more files to be changed, but they are not included yet, because I don't have the whole info needed.
Hope @rugglez or someone else will be willing to help.
Till then avoid converting stock-based roms,( or after converting replace the boot.img in converted rom with a working boot.img from another stock-based rom for the same bootloader of course. This may work)
Try ONLY CM-based roms.
I forgot to write it in OP. I'll do it asap.
Click to expand...
Click to collapse
I have a list of files/folders which I was using to port...Thanks to @rugglez ofcourse...
If you have seen the dev section....I was porting a few ROMs from Old to New BL including the stock ROMs.
So, I will send you the list by PM.
I will try the CM based ones with manual clearing...and will check that
EDIT: I am the administrator...so normally only one account and I have that rights too
thanks once again
Okay, I just used the converter on Win8 x64 to create an oldbl version of my CM10.2 ROM.
I have uploaded the resulting zip here: http://tonyp.basketbuild.com/index.php?dir=main/CM-10.2/oldbl-untested-builds/
It is untested - so do a backup!
I will post the steps I took, this might help some people who never worked with tools like this.
Please try it out with different ROMs - and if the resulting zips work a) post that here and b) share the zip in the respective threads for others to use
If you have any erros post the complete cygwin output here.
To get it do a right-click into the cygwin window, then press Enter - it's now copied into the clipboard!
Okay, off we go:
Preparation (one time only):
Downloaded cygwin. and install it
The path C:/cygwin is perfecly fine.
Just press Next until you get to the paket selection, then use the searchbox to quickly get to the tools needed:
(just click once on it, the first checkbox will get checked. The second one is for the sourcecode, you don't need that).
- zip (Archive)
- unzip (Archive)
- cpio (Utils)
- perl: Larry Wall’s Practical (perl) (you might have to open "perl" and look for it manually)
- perl_vendor (perl)
Downlaod the zip attached at the OP, extract it.
I extracted it to C:/temp/ROM-Converter-tools/
done
ROM conversion:
Open the Cygwin Terminal (either in the start menu or execute the Cygwin.bat at C:/cygwin/)
Put the ROM zip into the source_zips folder
Type:
Code:
cd /cygdrive/c/temp/ROM-Converter-tools
Needs to get adapted to your path if you extracted the ROM-Converter-tools somewhere else.
My path is: C:/temp/ROM-Converter-tools/
(Hint: after /cygdrive/c/ autocompletion with TAB will work!)
I didn't try the drag&drop tip of spyrosk.
Type:
Code:
./convert2old_bl.sh
(or convert2new_bl of course if you're going the other direction)
Follow the instructions on the screen,
As it's still in the debug mode you need to press [enter] a couple times.
This will change in the future.
Done, your converted ROM will be in the out_oldbl or out_newbl folder.
do this tool work with CM7
tonyp said:
Okay, I just used the converter on Win8 x64 to create an oldbl version of my CM10.2 ROM.
I have uploaded the resulting zip here: http://tonyp.basketbuild.com/index.php?dir=main/CM-10.2/oldbl-untested-builds/
It is untested - so do a backup!
[/LIST]
Click to expand...
Click to collapse
uhm ... in my case it got stuck at CM booting logo ... is flashing it recovery sensitive?
spyrosk said:
"...I just converted Avatar-3.1 from old to new. No errors at all.
I don't like the write-protected error: rm: remove write-protected regular file `out/ramdisk/charger'
So it tries after that to remove the out directory but of course it's not empty.
Well,
Remove out directory manually and try again from the beginning..
After step 5, Before you continue to next step try to remove the whole out directory manually again..."
Click to expand...
Click to collapse
Hummmmm, I tried experimenting, and it happened to me the same as the partner "SREEPRAJAY"! ...
Here are the errors I had during the experiments (three files *. pdf);
Hrmph.
Was running the latest CM 10.1 nightly. Rooted, old bootloader, CWM Recovery 6.0.3.1.
Made a Nandroid backup. Wiped everything from recovery, factory reset, flashed this :
http://tonyp.basketbuild.com/download.php?file=main/CM-10.2/cm-10.2-20130821-UNOFFICIAL-p990.zip
According to CWM all flashed and well. I rebooted.
Phone's bricked, won't even boot to recovery, gets stuck in the LG logo. Ouch. Halp ?
Ultramanoid said:
Hrmph.
Was running the latest CM 10.1 nightly. Rooted, old bootloader, CWM Recovery 6.0.3.1...flashed this :
http://tonyp.basketbuild.com/download.php?file=main/CM-10.2/cm-10.2-20130821-UNOFFICIAL-p990.zip
Click to expand...
Click to collapse
But...that ROM is for NEW BootLoader!!!...
Use All-In-One Toolkit to reattach the situation (reinstall again CWM Recovery);
http://forum.xda-developers.com/showpost.php?p=34809475&postcount=1
trocopassu said:
But...that ROM is for NEW BootLoader!!!...
Use All-In-One Toolkit to reattach the situation (reinstall again CWM Recovery);
http://forum.xda-developers.com/showpost.php?p=34809475&postcount=1
Click to expand...
Click to collapse
I know ! ( NEVER flash anything as soon as you wake up without checking twice, kids. )
I saw the one for old bootloader for the 20th, moved up a directory, happily flashed the one for the 21th... and for the NEW bootloader.
Don't have access to a laptop to tinker and won't for a few days. Sigh.
millionsun93 said:
do this tool work with CM7
Click to expand...
Click to collapse
No, and it never will.
GB relies on the old bootloader. It would be a lot of work to make it compatible, which isn't worth the trouble at all.
flat__line said:
uhm ... in my case it got stuck at CM booting logo ... is flashing it recovery sensitive?
Click to expand...
Click to collapse
Ah that's a shame. spyrosk needs to have a look at that when he gets some free time.
You did a full wipe didn't you?
If you did it sound like an error in the fstab.
Ultramanoid said:
I know ! ( NEVER flash anything as soon as you wake up without checking twice, kids. )
I saw the one for old bootloader for the 20th, moved up a directory, happily flashed the one for the 21th... and for the NEW bootloader.
Don't have access to a laptop to tinker and won't for a few days. Sigh.
Click to expand...
Click to collapse
Your partitions are borked and you will have to use nvflash.
I'm sorry about that although I don't really know how you came to the idea to try the untested oldbl builds when you got no PC around to recover.
This could have even happened with the correct rom - again, it is completely untested.
Sent from my LG-P990 using Tapatalk 4
  
tonyp said:
Ah that's a shame. spyrosk needs to have a look at that when he gets some free time.
You did a full wipe didn't you?
If you did it sound like an error in the fstab.
Click to expand...
Click to collapse
I did the full wipe (I checked: I used the ext4 full wipe zip by dr4go for the old bootloader, as I usually do, using CWM 5.0.2.8)

r1 - Custom ROM starter template - Honor 6 H60-L04 B820

Let's get some custom ROM tweaking going on for our 6s!
Ahead of my own MoDaCo Custom ROM for the 6, which is coming soon, I've created a custom ROM starter template for anyone who wants to have a go. It's a bit different.
Basically, this ROM template will let you create your own custom ROM VERY easily. Easier than ever before. All you have to do is...
download my ROM template zip
make the changes to the system of your phone just as you'd like them for your custom ROM
run some commands on your device via ADB
add the resulting files to the template zip
That's it! No messaging around with install scripts, no rebuilding anything complex, just mod - and go!
Preparation
ONLY if you are completing the process for the first time, you need to set up a file on your microSD card - so launch and ADB shell and type the following commands...
Code:
touch /sdcard/exclude
echo app > /sdcard/exclude
echo priv-app >> /sdcard/exclude
ROM build
Once you have your system up and running how you want it, and you're ready to distribute it (just the system and cust dirs mind, it won't pull the data dir, so your personal data is safe), reboot to recovery, launch an ADB shell and type the following commands:
Code:
mount /system
tar -X /sdcard/exclude -zcvpf /sdcard/system.therest.tar.gz /system/
tar -zcvpf /sdcard/system.apps.tar.gz /system/app /system/priv-app
mount /cust
tar -zcvpf /sdcard/cust.tar.gz /cust
You'll then end up with 3 new files on your SD card - system.apps.tar.gz (which is apps and priv-apps from system), system.therest.tar.gz (which, as the name suggests, is the rest of the system partition!) and cust.tar.gz with is the cust partition contents.
Update the template zip with these 3 files and that's it. It's ready to distribute for people to flash via TWRP! If you have updated the boot image, you'll need to replace that too, the easiest way is to do a TWRP backup then pull that file from the SD card and drop it into the template zip as boot.img. That's really it!
I hope this inspires a few people to start playing around with custom ROMs for the 6.. more cool things coming soon!
Oh and the all important template file...
DOWNLOAD - r1-customromtemplate-honor-6-h60l04-mogolia-b820.zip [MEGA]
NOTE: You should not flash a template ROM onto a different version base ROM. You should always ensure you have a stock dload ROM to restore to if needed. Use at your own risk!
P
I'm not familiar with rom developement but I was told that custom roms were impossible for Honor 6. So is it now fully possible ?
Has huawei changed their policy about sources ?
Only stock based ROMs. Source is still very limited.
P
Sent from my HUAWEI NXT-L29 using Tapatalk
Good news Paul!
Sent from my H60-L04 using XDA-Developers mobile app
Thanks for your work.

r1 - Custom ROM starter template - Honor 6 Plus PE-TL10 B521

Let's get some custom ROM tweaking going on for our 6 Plus'!
Ahead of my own MoDaCo Custom ROM for the 6 Plus, which is coming soon, I've created a custom ROM starter template for anyone who wants to have a go. It's a bit different.
Basically, this ROM template will let you create your own custom ROM VERY easily. Easier than ever before. All you have to do is...
download my ROM template zip
make the changes to the system of your phone just as you'd like them for your custom ROM
run some commands on your device via ADB
add the resulting files to the template zip
That's it! No messaging around with install scripts, no rebuilding anything complex, just mod - and go!
Preparation
ONLY if you are completing the process for the first time, you need to set up a file on your microSD card - so launch and ADB shell and type the following commands...
Code:
touch /sdcard/exclude
echo app > /sdcard/exclude
echo priv-app >> /sdcard/exclude
ROM build
Once you have your system up and running how you want it, and you're ready to distribute it (just the system and cust dirs mind, it won't pull the data dir, so your personal data is safe), reboot to recovery, launch an ADB shell and type the following commands:
Code:
mount /system
tar -X /sdcard/exclude -zcvpf /sdcard/system.therest.tar.gz /system/
tar -zcvpf /sdcard/system.apps.tar.gz /system/app /system/priv-app
mount /cust
tar -zcvpf /sdcard/cust.tar.gz /cust
You'll then end up with 3 new files on your SD card - system.apps.tar.gz (which is apps and priv-apps from system), system.therest.tar.gz (which, as the name suggests, is the rest of the system partition!) and cust.tar.gz with is the cust partition contents.
Update the template zip with these 3 files and that's it. It's ready to distribute for people to flash via TWRP! If you have updated the boot image, you'll need to replace that too, the easiest way is to do a TWRP backup then pull that file from the SD card and drop it into the template zip as boot.img. That's really it!
I hope this inspires a few people to start playing around with custom ROMs for the 6 Plus.. more cool things coming soon!
Oh and the all important template file...
DOWNLOAD - r1-customromtemplate-honor-6plus-petl10-pine-r521.zip [MEGA]
NOTE: You should not flash a template ROM onto a different version base ROM. You should always ensure you have a stock dload ROM to restore to if needed. Use at your own risk!
P
Nice !
I'm waiting !
wOw, this is a really good post.
I would like to have a try the other day.

How-To Modify boot.img for DualBoot Patcher (Android 9)

One of the things I missed most since moving to Oreo and Pie on the Note 4 has been trying out the new ROMs without having to mess with my daily driver setup. After a ton of research and some training on building ROMs from source, I was finally able to make Android Pie boot from any slot on Dualboot patcher. *
What you need?
* An Android Pie ROM
* Android Image Kitchen (AIK)
* modified device tree binary (dtb)
* a text editor
* RAR or some other zip file manager.
Instructions
1) Download and extract AIK from https://forum.xda-developers.com/showthread.php?t=2073775
2) extract the boot.IMG from your ROM to the same folder where you extracted AIK.
3) unpack the boot image using the unpackimg.sh script. This will create a split_img folder and a ramdisk folder.
4) go to the split_img folder and delete boot.img_dt (or boot.img_dtb depending on which version of AIK you are using).
5) copy the attached dtb.img file to the split_img folder and rename it to the original file name (boot.img_dt or boot.img_dtb)
6) go to the ramdisk folder and edit fstab.qcom. change this line:
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,barrier=1 wait,recoveryonly
To this:
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,barrier=1,discard wait
7) still in the ramdisk folder, modify init.qcom.rc. change this line **:
mount_all fstab.qcom
To this:
mount_all /fstab.qcom
8) go back to the AIK folder and run repacking.sh. this will create a file called image_new.img.
9) rename image_new.img to boot.img
10) replace the boot.img in your ROM zip file with the new one you just created.
Now you can use DualBoot Patcher to patch the ROM file for any slot and flash the patched file.
Just a few extra notes here:
* I only built these images for Android Pie for Snapdragon Note 4 devices. Make sure you use the the correct file for your device.
** in step 7, I noticed that some ROMs have an earlymount flag. You must delete that flag, otherwise the phone reboots to download mode.
***If anyone has any ideas to make this a flashable process, let me know. I would push these change upstream, but I don't know know enough about Git to do that. And, I don't know if the other devs want these changes.
Ok, so that was the manual way, but these changes can also be added to the kernel and boot image files at the time you build your ROM. Here is where you make the changes:
In the kernel, go to the dts sources. The file to modify is this one:
kernel/samsung/apq8084/arch/arm/boot/dts/qcom/aps8084.dtsi
Find this section and delete it:
Code:
system {
compatible = "android,system";
dev = "/dev/block/platform/msm_sdcc.1/by-name/system";
type = "ext4";
mnt_flags = "ro,barrier=1,discard";
fsmgr_flags = "wait";
status = "ok";
};
In the boot image, there are 2 files to modify.
1) device/samsung/trlte-common/rootdir/etc/fstab.qcom
Change this line:
Code:
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,barrier=1 wait,recoveryonly
to this:
Code:
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,barrier=1,discard wait
2) device/samsung/trlte-common/rootdir/etc/init.qcom.rc
Change this line:
Code:
mount_all fstab.qcom
to this:
Code:
mount_all /fstab.qcom
That's it. Build the ROM and it will be compatible with DualBoot Patcher. Since those are common files across the TRLTE, TBLTE and DUOS devices, all of those builds will be compatible with dualboot patcher.
So, one more thing. There are limitations to what you can install with DualBoot Patcher. Most things are easy to get around, though.
1) Flashable zip's that use Aroma installer might not change their behavior after being patched, and might install to your primary ROM slot anyway. Just something to be aware of.
2) Any flashable zip that has a custom script for updater-binary will fail to flash after being patched. For example, all the MicroG installers that I know of use custom scripts instead of the real updater-binary.
3) you cannot install a patched Magisk zip. But, you can install the Magisk Manager in your ROM, tap the install button (and the next install button that shows up), choose "Select and Patch a file", then choose the boot image from the Multiboot folder on your internal storage (/sdcard). It will patch the boot image and leave a file called "magisk_patched.img" in your Download folder on the internal storage (/sdcard). Use TWRP to flash this file to your boot partition, then reboot. Open DualBoot Patcher, tap the 3-dot button next to the ROM name, and tap "Set Kernel" to replace the saved boot image with the Magisk patched boot image. Note: if you accidentally
4) Magisk doesn't do much. You can use it to grant superuser permissions, but modules only work on the primary ROM.
5) custom kernels probably include their own dtb files. Flashpoint is an example of this. You may have to update the zip to remove the existing dtb file and add one of the files attached to OP. Make sure you rename it to match the original name in the zip file.
I set up my primary ROM per the above instructions, installed it, and I am trying to get my secondary rom installed. Do I need to set it up the same way (it is a 7.1.2 rom). When I patch it (7.1.2) through Dual Boot and try to flash it I get the following error.... " Failed to create temporary image /raw/data/.system.img.tmp" and it fails to flash. I've tried setting it both as secondary and in slot 1.... Any help would be appreciated... Hopefully I am just missing something simple.
rickpub said:
I set up my primary ROM per the above instructions, installed it, and I am trying to get my secondary rom installed. Do I need to set it up the same way (it is a 7.1.2 rom). When I patch it (7.1.2) through Dual Boot and try to flash it I get the following error.... " Failed to create temporary image /raw/data/.system.img.tmp" and it fails to flash. I've tried setting it both as secondary and in slot 1.... Any help would be appreciated... Hopefully I am just missing something simple.
Click to expand...
Click to collapse
What Rom are you trying to flash? Do you have enough space available on system or cache to flash that Rom? If not, try patching it for a data slot instead.
thanks
why when i do this the rom that have modified wont turn wifi on ?
n910f
i try it on linageos pie and havocos 2.8 and both have same issue after doing this solution
samdakid said:
thanks
why when i do this the rom that have modified wont turn wifi on ?
n910f
i try it on linageos pie and havocos 2.8 and both have same issue after doing this solution
Click to expand...
Click to collapse
That's really odd. Maybe I need to update the dtb images here. I will try to do that this weekend.
Would love to try this out

Categories

Resources