[ deodex script] deodexerious: all your base are belong to us! - Captivate Android Development

Here's a script I've built for my own ROM cooking purpose
another purpose was to create a very easy to read script, so everyone can understand the magic of deodex
had some hard time figuring all the BOOTCLASSPATH and all the signing magic (if you want to do it manually, the secret is: don't pack and sign!, just add the classes.odex to the original jar or apk...whatever...
or use my script to automagically do all that)
after one brick and jtag reincarnation and a few bootloops
I present to you:
DEODEXERIOUS !! (the only spartan deodex script)
requirements:
Linux
zip
* tested on my Ubuntu 10.10
instructions:
1. extract the included script
2. put the content of system(including the system folder) inside the rom folder
actually you can create a folder named system inside the rom folder and copy framwork and app folder there, it does not require any other files from the rom
3. while in the console inside the extracted script directory execute from the console
Code:
./deodexrom.sh
4. wait and watch the console for errors (there shouldn't be any)
5. when it is done, you should find the deodexed files inside the deodexed folder
* if you want to start over just execute from the same place in the console
Code:
./cleanall.sh
tested and successfully deodexed:
I897 UCKB1
I9088 KP2
I9088 ZNKP5
I9000 XXJPY
I9000 XWJS3
I9000 XWJS5
I9000 ZSJPG
I9000 XWJV1 2.3.2, except email.apk
it does not support already deodexed rom's!!! (why should it?)
if you test other raw versions (even captivate ones) please inform the result, or problems found, I'll do my best to help
careful
the script is a very initial version
it does inform errors human readable so watch the console for them
oh! almost forgot , here's the script:
http://dl.dropbox.com/u/3595341/deodexerious/deodexerious_03.zip
change log:
04/03/2011 - deodexerius_03
added gingerbread XWJV1 2.3.2 - custom classpaths
smali and baksmali 1.2.6
case insensitive classpath helpers
note:
deodexerius can deodex all XWJV1 2.3.2, except email.apk
27/02/2011 - deodexerius_02
better support for the additional files in kp5 and kp2
good luck!!

To Be Continued

If someone could come up with one of these for windows they would be my hero
Sent from my GT-I9000 using XDA App

rob989_69 said:
If someone could come up with one of these for windows they would be my hero
Sent from my GT-I9000 using XDA App
Click to expand...
Click to collapse
kind of like this one?
http://forum.xda-developers.com/showthread.php?t=700904

omg
You saved my life man... thanks a billion! And add a donate link, I know I'd like to send a few bucks your way

Pirateghost said:
kind of like this one?
http://forum.xda-developers.com/showthread.php?t=700904
Click to expand...
Click to collapse
If this works you are my hero!!! LOL. I've found a number of different ones, either they don't work or I'm not using them correctly but this one is new to me. Thanks.

rob989_69 said:
If someone could come up with one of these for windows they would be my hero
Click to expand...
Click to collapse
sorry man no windows version.
ytt3r said:
You saved my life man... thanks a billion! And add a donate link, I know I'd like to send a few bucks your way
Click to expand...
Click to collapse
your'e welcome.

rob989_69 said:
If this works you are my hero!!! LOL. I've found a number of different ones, either they don't work or I'm not using them correctly but this one is new to me. Thanks.
Click to expand...
Click to collapse
oh it works....

Just used this on KP2, works great, thanks!

existz said:
Just used this on KP2, works great, thanks!
Click to expand...
Click to collapse
great news!

works great with xwjs3

This is great. Works on the new KB1.

I keep seeing this while the script is running
Compiling classes.dex from rom/system/framework/framework-tests
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.raiseBoundsError(libgcj.so.11)
at java.util.ArrayList.checkBoundExclusive(libgcj.so.11)
at java.util.ArrayList.get(libgcj.so.11)
at org.jf.dexlib.DexFile$2.placeAt(DexFile.java:783)
at org.jf.dexlib.DexFile.place(DexFile.java:659)
at org.jf.smali.main.fixInstructions(main.java:255)
at org.jf.smali.main.main(main.java:203)
Packing
Cleaning up
Done.
Cleaning up
Do I have to worry? I am going to try it again when it all completes, just want to make sure I am not missing anything

|OP|
it does not support already deodexed rom's!!! (why should it?)
Click to expand...
Click to collapse
what if you wanted to deodex a single new app? just redo the whole thing?

Trusselo said:
what if you wanted to deodex a single new app? just redo the whole thing?
Click to expand...
Click to collapse
To deodex a single app, you need to keep the deodexed framework files around. Then you can just do that app by pulling the code bits out of the framework.
Sent from my SAMSUNG-SGH-I897 using XDA App

Trusselo said:
what if you wanted to deodex a single new app? just redo the whole thing?
Click to expand...
Click to collapse
baksmali/smali + about 6 or 7 framework jars + cmd prompt = win!

How can I verify that the Deodex worked? I ran the script a couple times last night just to see what happens and then dropped the files in on my phone. Everything is working fine, just wanted to know how I can verify its deodexed.

nakedninja42 said:
How can I verify that the Deodex worked? I ran the script a couple times last night just to see what happens and then dropped the files in on my phone. Everything is working fine, just wanted to know how I can verify its deodexed.
Click to expand...
Click to collapse
do you see any .odex files named the same as your apks?

nakedninja42 said:
How can I verify that the Deodex worked? I ran the script a couple times last night just to see what happens and then dropped the files in on my phone. Everything is working fine, just wanted to know how I can verify its deodexed.
Click to expand...
Click to collapse
if you don't see errors like the one quoted bellow, then you should be fine.
nakedninja42 said:
I keep seeing this while the script is running
Compiling classes.dex from rom/system/framework/framework-tests
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.raiseBoundsError(libgcj.so.11)
at java.util.ArrayList.checkBoundExclusive(libgcj.so.11)
at java.util.ArrayList.get(libgcj.so.11)
at org.jf.dexlib.DexFile$2.placeAt(DexFile.java:783)
at org.jf.dexlib.DexFile.place(DexFile.java:659)
at org.jf.smali.main.fixInstructions(main.java:255)
at org.jf.smali.main.main(main.java:203)
Packing
Cleaning up
Done.
Cleaning up
Do I have to worry? I am going to try it again when it all completes, just want to make sure I am not missing anything
Click to expand...
Click to collapse
actually this is an error, it means it failed to deodex this file
please provide more information, the reason can be many things:
java version
base rom
did you provide the full rom or only the file you mentioned?
provide more information and ill see what can be done.
ih4ckback said:
This is great. Works on the new KB1.
Click to expand...
Click to collapse
awesome.

marcelo.waisman said:
if you don't see errors like the one quoted bellow, then you should be fine.
actually this is an error, it means it failed to deodex this file
please provide more information, the reason can be many things:
java version
base rom
did you provide the full rom or only the file you mentioned?
provide more information and ill see what can be done.
awesome.
Click to expand...
Click to collapse
I am use the same KB1 that hit the forums yesterday that i4ackback stated that works for him. I installed Ubuntu 10.10 and installed Java from the software manager, not sure if its the right one. I started copying the full system folder but ended up only extracting just app and framework just like the OP states. That message appears throughout the process but I end up with everything in the deodexed folder.
Sent from my SAMSUNG-SGH-I897 using XDA App

Related

NO LONGER ACTIVE PLEASE CLOSE [devs] deodex version of ivanmmj Eris_Official 1.0

All,
per positive response below is a link to a copy of ivanmmj Eris_Official 1.0 ROM that I have fully deodexed. This is more meant for devs for continued play time, but it is a flashable ROM. PLEASE NOTE that ivanmmj himself looks to be coming out with the next version of Eris_Official 1.0 per his thread http://forum.xda-developers.com/showthread.php?t=652044.
Hope this is helpful and Enjoy
Link: REMOVED FROM HOST SERVER
P.S. please let me know of any issues as this is my first full deodex also I would like to encurage using this tread to exploring moding some of the system files on Eris ROM builds as it has been fun to tweak things
P.P.S. If you want the Zanfer kernel let me know and I will look at adding it in however ivanmmj's new version should have it...
what is Deodex?
I'm definitely interested, but I also think Ivan is working on the same project himself. I'm pretty sure his "1.1" is deodexed and has Zanfur's kernel. Not sure what other changes he has in mind, but you might want to check with him before posting since you'll end up being the one getting all the PM's from people wanting help. ;-)
Yes please I'm looking for exactly that
-------------------------------------
Sent via the XDA Tapatalk App
That would be awesome.
Sent from my Eris using XDA App
BTW jcase's plain jane1.0 has zanfur overclocking kernel.....
i dont know what you think but it might be a better platorm than ivanmmjs
a deodexed version of that would be tight....
kernels are easy to compile and swap out, a different kernel isnt going to influence the build at all
i always seem to get better battery life from the non oc'ed kernel.
Morkai Almandragon said:
what is Deodex?
Click to expand...
Click to collapse
Yes, what does that mean ?
hallstevenson said:
Yes, what does that mean ?
Click to expand...
Click to collapse
it means you have a classes.dex file rather than a .odex file
it makes things easier, its also possible to metamorph these builds and its possible to install a deoexed app on multiple platforms.
anonomouse said:
it means you have a classes.dex file rather than a .odex file
it makes things easier, its also possible to metamorph these builds and its possible to install a deoexed app on multiple platforms.
Click to expand...
Click to collapse
Means I can finally modify Rosie.apk to my liking.
hallstevenson said:
Yes, what does that [deodex] mean ?
Click to expand...
Click to collapse
A more experienced developer can add more but a few quick basics:
.odex files are precompiled class flies that correlate to a .apk or .jar file. In an odex ROM an .apk/.jar file will not function without it's correlated .odex.
a deodex build takes all of the .odex files converts them to a classes.dex and puts them into the .apk or .jar file package
deodex ROM are easier to mod because each .apk or .jar is a "complete" package and can be more easily decompiled and ported (i.e. you do not have to worry about the .odex files)
A deodexed build requires less space in /system, but more space in /data
A deodexed build requires a longer initial boot because they must regenerating those odex files from the dex files in the .apks/.jars and save them to /data/dalvik-cache
Thats a quick list of what I know
odex only help speed up app loading time and first time boot. Think of this as Windows' prefetch.
If you want to re-create odex for apk for porting, etc... I suggest only do this to /system/app not /data/app because when you do update from market and your app will break, unless you wipe out dalvik-cache.
zach.xtr said:
This is more meant for devs for continued play time, but it is a flashable ROM.
Click to expand...
Click to collapse
Would this be ok for an every day ROM? Or should it just be used by dev's as a base ROM?
Hey guys I've been testing this for Ivan. same thing he has a version deodexed.
I edited this
http://forum.xda-developers.com/showthread.php?t=664951
to work for this rom. which works great, but I get an error of
com.htc.bgp because of it, does anyone have any idea why?
Romparoo said:
Would this be ok for an every day ROM? Or should it just be used by dev's as a base ROM?
Click to expand...
Click to collapse
Technically it is fine as an everyday ROM, however I do not recomend using it for such because it is not support and will have no additional features over ivanmmj origional 1.0.
So I guess, yes it meant to be used as a base ROM or "spare parts" for devs.
BlazeD OnE said:
Hey guys I've been testing this for Ivan. same thing he has a version deodexed.
I edited this
http://forum.xda-developers.com/showthread.php?t=664951
to work for this rom. which works great, but I get an error of
com.htc.bgp because of it, does anyone have any idea why?
Click to expand...
Click to collapse
Someone else did this, on androidforums.com. I haven't replied to his posting, but it's in like page 19 of the 'show off your UI layout' thread there. I'm working on a modified Rosie.apk right now, as soon as I get this de-odex'd Ivan's on my phone running. Titanium backup here I come.
FYI, I was able to flash the deodexed version over the original Eris_Official 1.0 Alpha without having to do a full wipe (just wiped dalvik-cache). Naturally, I went back and re-flashed Zanfur's overclock kernel after that.

Kernel Source DROID Incredible by HTC (Verizon) – GB MR - 2.6.35 WITH COMPILING GUIDE

Hey all, I guess if your here its because you want to build your own kernel from the HTC GB Kernel source for the HTC Droid Incredible. So that's what we're gonna do.
First things first. I have to send out a huge thanks to a few guys that helped me out along the way.
jdkoreclipse - Your the best man. Thanks for getting me compiling.
wdfowty - Always good on the code.
ohheyitslou - Standing by while a blabbered on with stupid questions.
conap - The original god of kernels.
Koush - Thanks for the anykernel updater.
Note: The method I descripe below is what worked for me to get this thing to build and boot. Additional packages may be required. Ie; JDK, Android SDK, Python, git and the 32bit libs (if your on a x64 machine). I do assume that you have them and have your computer set up for development. I also assume that you are fully aware that any damage caused to your devices from YOU following this guide is held at your own responsibility.
Click to expand...
Click to collapse
First things first, lets make sure you are on a linux distro. At the time of this writing, I was using Ubuntu 11.10 x64. Note: 64x is highly suggested. My computer is a dual core amd machine with 4GB of ram. I have a 250GB HHD.
Next lets download some things that we will need for your kernel.
The kernel source of course:
DROID Incredible by HTC (Verizon) – GB MR - 2.6.35 kernel source code
This is the correct size and MD5:
88.8 MB (93,175,808 bytes) 67c01623ff73415a99e5f8cd1d8ef11a
You will also want the CM Toolchain. This is what compiles your kernel.
Open a terminal window and type:
Code:
git clone git://github.com/CyanogenMod/android_prebuilt.git prebuilt
And finally, the anykernel_updater.zip for packaging and flashing your kernel: anykernel_updater.zip
Have these things downloaded? Great! Lets continue.
Next we need to create a new build directory to build your kernel in. For this tut, we will make this in your Home dir.
Open a terminal window and type:
Code:
cd ~
mkdir android
cd android
mkdir kernel
Easy huh?
Next grab your HTC Droid Incredible kernel source archive and just open it with archive manager. We don't need to do any untarring here.
You'll want to drag that 395.2MB folder inside called 'incrediblec-2.6.35-gb-mr' to that kernel directory you created.
Next, grab the CM toolchain archive and open it the same way. Yup just drag that folder thats inside there out and put right in your 'android' folder.
So lets review real quick before we continue:
Inside your Home directory you now have a folder called: android
Inside that android folder you have two folders. One called: kernel and the other called: android_prebuilt or prebuilt.
Inside the kernel folder you have your kernel source folder: incrediblec-2.6.35-gb-mr
Is this correct? Good.
Now, lets open a new terminal window and move to your kernel source folder:
Code:
cd '/home/yourusername/android/kernel/incrediblec-2.6.35-gb-mr'
Now we will compile the source. Note: This is a basic kernel source compiling guide. Our focus is to simply compile the source. Nothing more.
In the terminal window type:
Code:
make incrediblec_defconfig
make -j4 ARCH=arm CROSS_COMPILE=/home/yourusername/android_prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
Note I used j4. This is because I am using a dual core box to develop on. I think now days most boxes are usually dual core or quad core?
Your kernel should now be compiling. This process could run average between 5min-1hr. My laptop (which is beast) did it in about 2 minutes. But then again I'm running a full install of 'buntu x64 with everything updated and ready to rock.
Anyways after the compiler finishes building it will tell you where to locate your kernel and wifi driver. Yes the wifi driver is included!
The kernel should be at: /home/yourusername/android/kernel/incrediblec-2.6.35-gb-mr/arch/arm/boot/ for those that don't know it is called 'zimage'. Just drag that out to your Desktop.
Now go grab your wifi driver. Its located at: /home/yourusername/android/kernel/incrediblec-2.6.35-gb-mr/drivers/net/wireless/bcm4329_204/ It will be called bcm4329.ko. Again drag that out to your desktop.
Now you can close everything thats open. Grab that anykernel_flasher.zip you downloaded earlier and open it up with archive manager. Don't extract it, just open it.
Navigate to system/lib/module/ and drag your bcm4329.ko right into it.
Next back up all the way to the root of the anykernel_flasher.zip and then open the kernel folder. Yup just drag and drop your zimage right in there. Close the archive manager window.
CONGRATS!!! You just compiled your first kernel from source!
Now you can rename the zip to whatever is easiest for you to remember. Common practice says the date and time should be in the name. Like mine from today is called: 2.6.35.13-stang-kernel-1830-110111.zip.
Now go test your kernel. Just put it on your sd card and flash it through recovery. The anykernel_updater.zip will handle the wiping for you so you shouldn't have to worry about wiping boot, dalvik-cache or cache. You can still wipe those things if you would like.
Once the flash is complete, just hit reboot device and wait for your phone to boot up. It took mine about 5 minutes to fully boot up.
Well, I hope yall enjoyed this guide. I wanted to keep it simple. I am not a kernel god or anything but let me tell ya, I went through a lot to try to learn how to do this. So if you run into any trouble, I'll try to help you out if I can.
Have fun guys!
now what​..........
Nice. Good job.
Sent from my ADR6300 using Tapatalk
Way to help us out with a good easy to follow guide stang thanks
sent from my sexy Slcd Droid Incredible. not dinc or D-inc that just sounds stupid.
tiny4579 said:
Nice. Good job.
Sent from my ADR6300 using Tapatalk
Click to expand...
Click to collapse
Thanks Tiny. Now we need to get some more customs going
evilstewie23 said:
Way to help us out with a good easy to follow guide stang thanks
sent from my sexy Slcd Droid Incredible. not dinc or D-inc that just sounds stupid.
Click to expand...
Click to collapse
Thanks stew, You know how much this means to me.
Beast Mode! Very nice guide sir, I'm sure some of the more serious members will get hella use out of this. I have been (sort of) following your progress on twitter, so glad to see that you finally got it figured out. Nice work.
00McD00 said:
Beast Mode! Very nice guide sir, I'm sure some of the more serious members will get hella use out of this. I have been (sort of) following your progress on twitter, so glad to see that you finally got it figured out. Nice work.
Click to expand...
Click to collapse
Thanks Mc. I'm just happy to have learned this much atleast. I'm even more happy to share what I've learned. That's the important part.
wildstang83 said:
Thanks Mc. I'm just happy to have learned this much atleast. I'm even more happy to share what I've learned. That's the important part.
Click to expand...
Click to collapse
Definitely, I have always felt the same way. Sharing is caring lol
That's the stuff, Wildstang. Glad you're back.
Sent from my Prime_XL Incredible via Tapatalk
very nice. Im going to give a this a go and see what i can some up with. does this require a sense rom or a aosp rom?
dirtsky said:
very nice. Im going to give a this a go and see what i can some up with. does this require a sense rom or a aosp rom?
Click to expand...
Click to collapse
This compiles a sense kernel.
tcberg2010 said:
This compiles a sense kernel.
Click to expand...
Click to collapse
Well Sh*t. Oh well ill still give it a go I guess.
tcberg2010 said:
This compiles a sense kernel.
Click to expand...
Click to collapse
these instructions will work fine for aosp. You just have to download that kernel source instead. The compile process is the same.
Sent from my ADR6300 using Tapatalk
Ill have to get the kernel source and see what I can do.
Sent from my Incredibly awesome Droid Incredible.
Thanks for adding this howto, wildstang -
I really appreciate it. I just for the first time in a year+ went from my old rooted inc to this home-brewed self-compiled (I added cifs & tun built into the kernel) and installed it. I'd just tried the insensitive ROM as well and this helped things quite a lot due to cifs & tun. I also set the clock to a not-very-aggressive 1075000 which works fine on my inc.
Much appreciated and good guide.
edit: I forgot to mention that in general and here as well, you can 'brand' your kernel so you're sure you've really installed it and it is running on your phone by checking the firmware revs in about-phone. To do that, just edit Makefile and I think it is called Extra (under Version) which is as it is set to .13, so I set that in my case to .13-cifs-tun-cust, and it shows on my phone. It is useful in case you forget to zip the file up or something.
Hashi

[TOOL] Develop/Customize Your Own Rom 1.0.4 | 1/05

RandomKing's Android Kitchen​
IMPORTANT NOTICES:
First and foremost, I will not be providing intricate and detailed directions with this.
This will remove almost any need to ever have to enter command-line code by simplifying everything into simple menus and performing the code for you!
I only take partial claim to this, as I've only written the over-arching interface and the smali/baksmali interface.
This is provided primarily for personal modifications. Please do not make a few minor changes to an existing rom and call it your own.
WHAT IS PROVIDED:
Quite simply, this is a menu-based interface coupled with nearly all of the .jars, packages, and files necessary for android development. Using this you can decompile/compile .apks and the vast assortment of features associated with this as well as baksmali/smali .dex files and even sign your .zips! This is the interface I currently personally use to streamline my edits combined into an easy installer. This will create a shortcut in your start menu, as well as provide an uninstaller. I'm always looking to streamline more!
Decompile framework-res.apk and systemui.apk for theming purposes!
Rebuild framework.jar to include the latest mod that your favorite rom just doesn't have!
Etc!
WHAT ELSE IS NEEDED:
Java [For functionality]
Gimp [For png and .9.png editing]
Winmerge [For easily identifying file changes]
Notepad++ [For smali and xml edits]
7zip Archiver [For creating/managing .zips]
A general knowledge of everything mentioned!
INCLUDED FEATURES:
Apk Manager 5.0.2 by raziel23x
-Zipalign
-Apk Tool
-More
Dex Manager 1.0.0 by RandomKing
-Smali
-Baksmali
AutoSigner by Stericson
DOWNLOADS:
>>Android Kitchen 1.0.4<<
>>Alternate Download<<
(Rename from '.bin' to '.msi'.)
CHANGELOG:
Version 1.0.4
-Removed rogue classes file (reduced install size)
-Fixed shortcut
Version 1.0.3
-Redesigned AutoSigner menu in line with overall menu
-New versions should install over old versions
-Version number shown in cmd header
-New splash screen
Version 1.0.2
-Added shortcut to kitchen folder for easier file management
Version 1.0.1
-Fixed issue with APK Manager not including requisite folders
KNOWN ISSUES:
-When using my Dex manager to Smali/Baksmali, it may say "File Not Found" and appear to work anyway. It will work anyway. All this indicates is that prior to performing its function it is removing a preexisting directory or classes.dex to avoid overwrite issues and that none currently exists.
-Sometimes baksmali will not properly perform, but running it again usually solves that.
I post this in 'General' under the assumption that most users in the 'Development' forum can do all of this and more without my help.​
ScreenShots
Went down with my old site. PPCGeeks gave me no warning. Nice of them, right? Good thing I moved almost everything beforehand.​
Nice work
Sent from my SPH-D700 using XDA App
Sweet! Well done! Thanks for sharing.
marcusant said:
Nice work
Sent from my SPH-D700 using XDA App
Click to expand...
Click to collapse
codest3r said:
Sweet! Well done! Thanks for sharing.
Click to expand...
Click to collapse
I figure, some people are daunted by command lines. Plus it can be tiresome. But even more so, some that want to try their hand at developing (the only way to learn it!) don't know where or what tools to find. I made this some time ago, and have been adjusting it ever since to my liking.
XDA is for sharing, right?
Awesome
sent from my cm7 touchwiz 4.5-ed epic
what do i do with the .bin file?
So can I compile 9.pngs with this instead of Eclipse? I couldn't get the Android plug-in to work on Eclipse...thanks.
Thanks, RandomKing, I've been thinking of creating some CMD line scripts. You just saved me the trouble!
Wow this is awesome! Thank you for all your hard work!
Sent from my ADR6300 using Tapatalk
kennyglass123 said:
So can I compile 9.pngs with this instead of Eclipse? I couldn't get the Android plug-in to work on Eclipse...thanks.
Click to expand...
Click to collapse
Yup, this is how I've been doing it for a while now.
AmericanJedi001 said:
Thanks, RandomKing, I've been thinking of creating some CMD line scripts. You just saved me the trouble!
Click to expand...
Click to collapse
The developers of ApkTool, and subsequently Apk Manager are the ones that gave me the idea... why not one cmd interface to rule all of my programming needs?
imtoomuch said:
Wow this is awesome! Thank you for all your hard work!
Sent from my ADR6300 using Tapatalk
Click to expand...
Click to collapse
No problem, I figured I'd finally made it as user-friendly as possible. I had a lot of trouble keeping all the necessary codes memorized, and smali edits to framework.jars was my biggest annoyance!
jpond83 said:
what do i do with the .bin file?
Click to expand...
Click to collapse
Change it from .bin to .msi. I'm not sure why it uploaded like that, I may put it in a zip.
that worked, thanks for sharing this, this is great

[GUIDE] How to port sense to non-HTC devices.

How to port Sense.
Source: http://forums.androidcentral.com/optimus-v-rooting-roms-hacks/164989-guide-how-i-port.html (second post)
This is NOT my guide, just posting it here!
This is a very difficult process that I hope you'll understand.
First step is to find a device that is preferably VERY similar to your device, in this instance I guess we would use the htc thunderbolt, which I've been told multiple times that it is used for the MT.
You're going to want to use CM7 for parts. Simple enough.
I will be referring the Sense ROM to SENSE and CM7 as BASE to simple things up. So remember that.
When I say replace, I would recommend deleting from one and adding it with the other
Open up Sense and Base in different windows.
Put in the boot.img from Base into Sense (make sure you put the original boot.img in some other place that you'll remember)
go into /system/usr on both
replace keylayouts and keychars from Base into Sense (this is just your keys)
download dsixda's kitchen (http://forum.xda-developers.com/showthread.php?t=633246)
Get the ROM you have so far set up in it and what not (I'm a little fuzzy at this part)
Once you get done with that, run the menu in terminal and navigate your way to decompile the boot.img (action key- "a") and then run the same thing except run the action key "w" to decompile the original boot.img. So the key here is to decompile both boot.img's.
Go into the ramdisk on both and go into init.rc
THE MOST IMPORTANT PART IN THIS (THE MATTER OF BOOT AND BOOTLOOP) IS THE LINE
"export BOOTCLASSPATH" near the top. It will have a bunch of lines after it. Now in the Base's boot.img, delete this whole line. Replace it with the lines from Sense's boot.img.
Now you can add anything else you want that looks like it belongs (preferably anything sense related)
Don't recompile the boot.img yet.
Now we add a2sd. To do this, just follow this guide (https://www.facebook.com/note.php?note_id=158823170833688)
The only thing you do in there is the edits to the init.rc, don't listen to the decompiling/recompiling mentions. Now you can go back into the menu for the kitchen and recompile the boot.img (action key - "b"). Now don't compile the WHOLE ROM, just take the new boot.img in working_** and put it into the Sense zip.
Now you're going to want to download my ROM (sorry, just don't feel like uploading each individual file) http://gannon5197.blogspot.nl/2012/03/got-sense-booted.html
And go into the /system/bin on both
these are the files you're going to need: a2sd, bash, apps2sd.hlp, busybox.a2sd, chka2sd, jita2sd, launcha2sd, starta2sd, and maybe possibly sh (try once without it)
And you're going to want to set permissions for each one of these in the updater-script (look at mine for references)
Now also look at my zip and you'll see move_cache_sd. Put that in yours and set permissions for it in updater-script (use mine for references)
After that, the other stuff is mainly just getting rid of all the bloatware, (look in /system/app and /system/media) I wouldn't delete any libs as of right now. If you try to flash it and it reboots recovery then it is too big.
If it is too big, you're probably going to want to move a lot of the apps to data. To do this, just make a file called data/app/put_your_apps_here on the root of the zip. You're going to have to set permissions for it in the updater-script, but use the test.zip I sent you in the original.
This will most likely get you booted. Nothing will likely work. Which is expected. If you have any problems, just use logcat. It will be your bestfriend. Have fun porting
Click to expand...
Click to collapse
reserved
Thanks for reopening it bro...
Sent from my LG-P500 using Tapatalk 2
No problem :thumbup:
Don't know how this above awesome thread is so blank
Have u tested if this way works
Sent from my LG-P500 using Tapatalk 2
great guide, gonna try out soon
hmm this one's new for me. saved
should come in handy sometimes
someone has to do this for the Galaxy S2.
Will it also work for ICS ROMs?
I must do this. Anybody know where I can get the firmware for the One S?
Can i use a Gingerbread ROM as a base instead of cm7?
Hello for lg p500 there is 2 sense rom but data and mic not working in both rom can you help to solving that problems????btw great tutorial.
in fact sensse porting is differnet from the tutorial showed it is a little bit more difficult and there are some libs needed that there is only for the devices you are porting to. so a general tread will not really work
QuBe2 said:
in fact sensse porting is differnet from the tutorial showed it is a little bit more difficult and there are some libs needed that there is only for the devices you are porting to. so a general tread will not really work
Click to expand...
Click to collapse
Well this is not my tutorial just found it on the internet so I don't know if it works
Lord Inglip said:
Well this is not my tutorial just found it on the internet so I don't know if it works
Click to expand...
Click to collapse
why sharing things on the internet
QuBe2 said:
why sharing things on the internet
Click to expand...
Click to collapse
Because it's the internet. This guide was the only thing I could find.
Well you ported a htc sense One x rom to the Nexus S, so can you show us how you did it?
Lord Inglip said:
How to port Sense.
Source: http://forums.androidcentral.com/optimus-v-rooting-roms-hacks/164989-guide-how-i-port.html (second post)
This is NOT my guide, just posting it here!
Click to expand...
Click to collapse
Similar phone means the same chipset,processor and gpu??
a2441918 said:
Similar phone means the same chipset,processor and gpu??
Click to expand...
Click to collapse
Yes it's better if the phones have the same hardware
Lord Inglip said:
Yes it's better if the phones have the same hardware
Click to expand...
Click to collapse
I have an xperia x10.. will the nexus one and HTC desire be suitable??
My cm7 rom which i downloaded doesn't have a boot.img file.. So how to get it?? Is it the system.img got from a nandroid backup?? and the sense rom which the post refers to is the stock sense rom of the phone in a zip format or a modded one??
Not working..stuck at boot logo

[TUT] How to easily port CM7,CM9,CM10 Based ROMs to HTC Aria

Easiest and best way to port CM7,CM9,CM10 Based ROMs to HTC Aria/Intruder/Gratia
Code:
I do not guarantee any successful porting.
I am not responsible for [B]bricked devices, dead SD cards, or a broken device[/B].
[B]YOU[/B] are choosing to make these modifications,
and if you point the finger at me for messing up your device,
I will laugh at you.
->Copied from some xda thread.
*****
But a rom, no matter how bad should *not* do any physical non recoverable harm to your device,flashing a rom or restoring a nandroid backup via cwm *should* immediately fix any problems what so ever.
And I will try to help in any ways I can.​
I am NOT a developer, I can not code,compile,etc, I am only an android enthusiast with half a brain able to follow specific instructions.
This guide is actually somewhat a good combination of various "how to port roms"
guides found here on xda suited and very slightly modified for our beloved Aria.
Thanks to all of those threads and their writers.
Click to expand...
Click to collapse
Actual Tutorial starts here:
I will try to make this guide as straight forward as possible. ​
PORT ROM:
First you need to figure out what rom you are going to be porting.
For our Aria, The rom you want to port should belong to a device that has:
HTC brand (optional but recommended)
A ArmV6 CPU (VVVV important)
A HVGA Resolution (optional, any mdpi should do,if not just open the system apk files using 7zip and resize all the BIG images.)
The Rom needs to be:
CM7 BASED OR CM10 BASED OR CM9 BASED.
The full zip size less than 150MB(Recommended).
What Does Port Mean:
This simply refers to the rom you will be trying to port.
Recommended device to port from is the HTC Wildfire S a.k.a Marvel.
But any other device
BASE ROM:
What Does Based Mean:
It means that the rom should have similar sources and stuff,
Meaning you can only attempt to port a android 2.3 rom if you already have a 2.3 rom on the device.(In our case cm7).
So,
For porting 2.3 roms, chose cyanogenmod 7.2 as BASE.
For porting 4.0 roms, chose cyanogenmod 9 as BASE.
For porting 4.1 roms, chose cyanogenmod 10 as BASE.
ETC... I hope you get the point.
:fingers-crossed:
Thing you will need:
A good Zip extractor and compressor. (I use 7zip, its free. If you have winrar or something else,it will also do.)
Notepad++ (This thingy is awesome! And you need it for some stuff)
Android SDK(Not the whole thing, just adb zip from our sticky thread will do.)
Some Basic Android Knowledge, Root knowledge.
Mostly Common Sense.
Click to expand...
Click to collapse
Step 1:
Extract our device rom zip and name the folder AriaRom,
Extract our Port rom zip and name the folder PortRom.
Step 2:
Delete the following folders on the AriaRom/system folder:
App(You can keep some non conflicting indepent apps if you want)
Framework
Fonts
Media
Step 3:
Go to
Code:
PortRom folder/system
and copy:
App(You can keep some non conflicting indepent apps if you want)
Framework
Fonts
Media
and then paste them to AriaRom/system.
Step 4:
You need to open these two folders side by side(on windows, open both folders then right click on the task bar and click "Tile windows vertically").
The two Folders are:
Code:
[LIST]
[*]AriaRom/system/etc
[*]PortRom/system/etc
[/LIST]
In
Code:
etc/permission
folder copy all the permissions files in PortRom to your AriaROM folder except
Code:
platform
handheld_hardware
Then open init.d Folder in AriaRom and Delete Everything except
Code:
banner
and then copy all the files inside init.d folder of PortRom to init.d folder of AriaRom.
Step 5:
Now
Code:
AriaRom/system/buid.prop
and
PortRom/system/buid.prop
files using Notepad++
On AriaRom Build.prop make changes as you wish.
Code:
[LIST]
[*]ro.build.id=
[*]ro.build.display.id=
[*]ro.build.date=
[*]ro.modversion=
[/LIST]
Copy and replace these values from PortRom buildprop to Aria rom buildprop.
ro.config.ringtone=
ro.config.notification_sound=
ro.config.alarm_alert=
Also Copy anything you Find Extra and important-ish in ADDITIONAL BUILD PROPERTIES using common sense.(Not much major stuff, but if bootlooped, copy whole thingy.)
IMPORTANT Step of commons sense:
Open up both
Code:
META-INF/com/google/android/updater-script
using Notepad++.
Compare AriaRom AND PortRom line by line(on two tabs in notepad++ easily done).
Copy extra/additional lines from PortRom which are not present in AriaRom to aria roms updater script.
Step 6:
If You find any extra file or folder in system folder of PORTrom than copy them to your Ariarom system folder.
Finally, zip the
Code:
META-INF
system
boot.img
data(if exists).
folders/files togather and use "normal" compression if asked.
Name the zip to whatever you want, and walla you have successfully ported the rom!
:fingers-crossed:
Doing the above steps should land you a pretty solid rom, as solid as the base rom.
Still,Incase of problems:
If the ported rom does not boot:
Stuck at boot screen
Bootlooping
Then copy system/lib/
Code:
libandroid_runtime.so
libandroid_servers.so
libmedia_jni.so
files from PortRom to AriaRom system/lib.
It should boot, if it still doesnt, check the above steps and find out what you did wrong.
Common reasons could be:
Build.prop mess up
Updater Script mess up
Forgot to delete or copy file
After it boots,
Everything that worked on Base rom, should work on Ported.
Every problem on Base Rom will exist on Ported.
In case of root related problems(settings not being saved,system app FCs,etc), install a root app like titanium backup or something and check if it works,if it doesnt its surely root issue,just download and flash latest superuser zip.
If some FC,Port rom funciton not working,etc issues appear, you need to decompile framework-res.apk using apktool and change device specific xml files to ours.This is a part where I have the most trouble and suck at.
Just search xda for
How to Logcat,
Click to expand...
Click to collapse
this will help you to find the problems and search xda to solve them. Ask me if you want on this thread, & I will try to help, but I dont think I will be able to help much as I have very limited knowledge on compile De-compile stuff.
If someone is good at framework-res and framework decompile & recompile stuff, please help us.
Click to expand...
Click to collapse
Thanks for reading this,I hope you port over some awesome roms to our device.
:highfive:
I just tried to port the PACman ROM from Samsung Galaxy Ace to the Aria, but I am stuck at boot screen after following your tut, which is awesome by the way. Could you post a working build.prop and updater-script for this ROM? Maybe this will help me get it booting...
dansou901 said:
I just tried to port the PACman ROM from Samsung Galaxy Ace to the Aria, but I am stuck at boot screen after following your tut, which is awesome by the way. Could you post a working build.prop and updater-script for this ROM? Maybe this will help me get it booting...
Click to expand...
Click to collapse
That's an Armv7 device.
Still I'm gonna download it & try.
In the meantime take a look at bootclass path.
Why are SMARTphones soo... Freaking Dumb?
sifat3d said:
That's an Armv7 device.
Still I'm gonna download it & try.
In the meantime take a look at bootclass path.
Click to expand...
Click to collapse
I don't think so... the Samsung Galaxy Ace with device number S5830 should be Armv6, but in the Galaxy Ace Forums there is also a place for the Galaxy Ace II, which is Armv7. Maybe that's a bit confusing. But nims11 PAC-Man Rom is definitely for the Armv6 device.
hey man thnx for the tut but i tried porting the paranoid rom like you but i keep getting this error while flashing ( set_perm: some changes failed) i think it have something to do with the updater-script, could u upload the build.prop and the updater-script for me ? and btw why do we need the sdk ??
---------- Post added at 02:43 AM ---------- Previous post was at 02:03 AM ----------
actually now i tried not to change the updater-script and the rom flashed but stock at boot pleaaase help me i really want to try the paranoid rom (ive been trying to port the "pa_marvel-2.54-beta1-08NOV2012-164651" )
rami.ejle said:
hey man thnx for the tut but i tried porting the paranoid rom like you but i keep getting this error while flashing ( set_perm: some changes failed) i think it have something to do with the updater-script, could u upload the build.prop and the updater-script for me ? and btw why do we need the sdk ??
---------- Post added at 02:43 AM ---------- Previous post was at 02:03 AM ----------
actually now i tried not to change the updater-script and the rom flashed but stock at boot pleaaase help me i really want to try the paranoid rom (ive been trying to port the "pa_marvel-2.54-beta1-08NOV2012-164651" )
Click to expand...
Click to collapse
Here you go,
http://pastebin.com/62hbaQwL
on THAT ROM,
IF you follow the guide & use my posted script,
100% assurance rom will boot and work. except cm
The sdk is for getting the logcat when a problem occurs.
Why are SMARTphones soo... Freaking Dumb?
Nice tut very well done
XDA Moderator
dansou901 said:
I don't think so... the Samsung Galaxy Ace with device number S5830 should be Armv6, but in the Galaxy Ace Forums there is also a place for the Galaxy Ace II, which is Armv7. Maybe that's a bit confusing. But nims11 PAC-Man Rom is definitely for the Armv6 device.
Click to expand...
Click to collapse
In that case you'll need to unpack both boot.img aka the kernel , fix bootclass path in init.RC by replacing it with the value from port roms init.rc.
Ill try to port that rom soon and upload a fixed boot.img (if I can get it to boot),if you don't beat me to it. it looks cool.
Why are SMARTphones soo... Freaking Dumb?
Bootclasspath is the same on both roms. So there must be a mistake in updater-script and / or build.prop. I've just messed up my updater-script, I guess, so I'll make a new one and post it later together with the build.prop.
I got this pac rom booting & everything operational except per app dpi(exists in port rom).
This rom works with the guide.
http://forum.xda-developers.com/showthread.php?t=2118567
Why are SMARTphones soo... Freaking Dumb?
I'll try this and let you know if it worked.
Hi guys,
If you only want per app dpi,persistent apps,etc
Try this on winsuk bros cm10
http://forum.xda-developers.com/showthread.php?t=1574401
Its quite good.
...Devided by zero
dansou901 said:
I'll try this and let you know if it worked.
Click to expand...
Click to collapse
btw,
did it work?
...Devided by zero
Sadly, I didn't get any time to try so far. But on Sunday I lost my Gratia, so I won't continue this project; I've upgraded to the HTC Desire X.
dansou901 said:
Sadly, I didn't get any time to try so far. But on Sunday I lost my Gratia, so I won't continue this project; I've upgraded to the HTC Desire X.
Click to expand...
Click to collapse
That's a shame. Similar thing happened to me. I lost my Aria right before i had a chance to try this, and upgraded to the Nexus 4.
will this method work on cm10.1 and this http://forum.xda-developers.com/showthread.php?t=2297580 ??
Could work, just try... I would do it if I still had the phone...
dansou901 said:
Could work, just try... I would do it if I still had the phone...
Click to expand...
Click to collapse
rami.ejle said:
will this method work on cm10.1 and this http://forum.xda-developers.com/showthread.php?t=2297580 ??
Click to expand...
Click to collapse
It should pretty much work,
If it doesnt, just send me the
Updater script
Build.prop
files of BOTH roms, And I'll have a look.
I wouldve tried myself but my aria has no network and has random reboot issues due to falling hard.

Resources