Hey Guys,
I am going to explain some of the files in a custom rom,the small and easy to mod files because the aim is to educate newbies and NOT advanced devs.
Ok,So,I have seen a lot of questions being asked nowadays about making custom roms.This guide is NOT about building a custom rom but about editing and modding it.I am doing this guide taking CM7 as base,not stock,so there might be differences between the roms you choose to mod.Also,I am prone to mistakes here and there.If i made any,please comment about it and i will remove it.Also,please feel free to give your suggestions about making this guide better
What you would need:
Notepad++
WinRar or any other zip/rar manager like 7zip or WinZip
If you want go advanced,you would also need these things
Cygwin
Smali/Baksmali
APK Multi tool or anything like that,i dont care
And most importantly,a brain and eyes(So,Dont ask me stupid questions like,how de fuk du i xtarct? and then in brackets,sorry for my english)
GUIDE:
So,first up,download a rom of your choice(Dont forget to get the permissions for modding from the developer) and extract it.When you extract it,you will see 2 folders and 1 file,it varies.It depends on the contents of the rom.
The folders are:
1.META-INF
2.system
The file:
1.boot.img
So,
Open up system and the first folder you are going to see is 'apps'.
As you already see,this is the place where all the apps go,for the history.You might also see some .odex files below the apps.So,if you remove an app,you should delete the odex file too.If you want to add an app,just drag and drop Take care not to delete each and every app you find,because each of them has their own functions.Also,if you delete contact.apk and replace it with a better dialer like Exdialer,you wont be able to add or delete contacts.So,there are some files better left alone.
If you want to know how to merge them,then use google,there are a lot of tutorials on deodexing.If you want to edit an app,then use APK multi tool,again please use google,lots of tuts on this one too.
Also,you will find an app here and its a main one,systemui.apk By editing systemui.apk,you can get transparent status bars,transparent notification bars,centre the clock.Things like that.The idea with which you edit Systemui.apk and framework-res.apk,thats how your rom is going to look like.These files handle the visual things and they are awesome too.For some systemui mods,refer HERE
Now,some apk files are lib-dependent,meaning,they need certain lib files to work,a few examples are,Swype keyboard,now,swype wouldnt work if this lib file is not included in the rom,libswypecore.so,so if you remove swype,remove this lib file also,because its just a wastage of space and it doesnt do anything.Another example is DSP Manager in Froyo,in GB,it works native,no need to add any applications,but in Froyo,if you add DSP Manager,there are a few lib files that you should add to get them to work.
Next,the 'bin' folder,this guide is aimed at the noobs,so nothing about this,this is a bit advanced stuff,so sorry.
Next up,the 'etc' folder.There are a lot of things that go here.I wont be going to full details for the moment because i am having exams,so no time.However,i will be explaining the easy to explain files.
One thing you will notice is the 'init.d' folder.If you want to add any script like LagFree v2,just put the files of the init.d folder in the script's folder here,nothing else.You dont need to copy any other files like META-INF.
Another file,is CHANGELOG-CM,just as the name suggests its a file giving you changelogs
Another file is NOTICE.html..Its just a file showing copyrights and all that stuff.You wouldnt need to edit that,would you?
Will add more about the other files soon
Next,the 'fonts' folder..You guys need an explanation for that??
Next,'framework' folder.Here you will find framework-res.apk(Obviously,duh...).I wont tell about any other file because this is aimed at new users,not advanced guys.Framework-res is where all the icons in notification bar are.The battery icons,they are all in framework.Also,lockscreen icons
go here..Most of the icons.If i have to start on anything.It would take me weeks,theres so much to write about framework.Also take care not to mess up the framework.Because its like the skeleton(thats what i know ) of a rom.If a framework is incorrectly configured,the rom wont boot.So,keep that in your mind always when you edit framework.
Next,the 'libs' folder,This guide is aimed at newbies,so not touching this part.
And comes 'media'..Most probably you will find 2-3 folders here.Audio,bootanimation.zip and wallpapers.
If you want to change the default,its in build.prop,not here,i will explain that later.If you need to add some audio,its just drag and drop,nothing much,just put them in the right folders,like alarms,ringtones and notifications
If you need to add wallpapers,reszie the pictures to 640x480,thats the resolution that works for ace.Also resize it to 107x80 and save it as another pic with a _small at the end.For eg,the default file is defaultwallpaper.jpg,you make another pic with 107x80 called defaultwallper_small.jpg.
Then,theres the bootanimation.zip..However way you change this thing.Always name it bootanimation.If you want to know how to make a boot animation,then refer freeyourandroid.com
Next up is 'tts' folder..Sorry but i dont know much about this folder.I think this folder contains the languages for the tts app but i am not sure about it.Same goes for 'usr' and 'wifi' folders.But since this thread is aimed at newbies,i dont think there wouldnt a point in writing them up anyway
Next up is build.prop file.Open it with notepad++...build.prop file is pretty self explanatory.
Here you can change the most basic things like the android version that setting shows..Wondered how people are making 2.3.4 look like 4.0.3 in settings??Its build.prop.Also,you can change what 'About phone' shows here.
Other things,you can change things like,how long your wifi scans,how much battery your phone saves while in sleep,Dalvik VM heapsize and default ringtones.If you are wondering what # stands for,it signifies that,that particular tweak is not running,so you can take out the # if its a tweak you like.You could also use it say things like,Additional build properties.You could make it #AdditionalBuildProperties and go to the next line and give your tweaks there.Some build.prop tweaks can be found in slaid480's thread in Galaxy Ace S5830 titled "[MOD]Build.prop tweaks for SGA" or you can go to freeyourandroid.com and find some tweaks there,however the tweaks listed there are universal,so practise caution when playing with build.prop
Now to boot.img..Theres an awesome guide about this in freeyourandroid.com Please have a look at it,because there are lots to write about this one.This is where Cygwin comes in,for instructions on unpacking and repacking and commands and info about boot.img,referHERE and HERE.My summarized version,boot.img is where you can replace kernels.This is where you can make those low-level changes
Then,to META-INF folder.You would find lots of folders here but the file that you would edit consistently is update script.Find it and open it with Notepad++..Unless you edited xbin and bin files,this is not hard to do..Just change around ui_print to what you like.Dont touch anything else if you dont know what you are doing.If you DID edit xbin or bin files,you would need to touch advanced things like symlink tagged ones(I had to give them some sort of a tag)
Updater-Script References and notes:
Now,the updater-script is not something that you should mess around with,a single line of error in the script could get you in trouble.You might also have heard these words,Amend and Edify and wondered what they are,well Edify is the language with which Updater-script is written,while Amend is the language with which Update-Script is written.Now,As far as i know,Ace does NOT support Update script,it just supports Updater-script,so if you are working with kitchen,dont forget to swap the files in META-INF with the the updater-script provided by ketut.kumajaya in Blackhawk thread.So,you should learn to study updater-script of roms and patches before you mess around with them,especially patches here...Now,for example,I made a GPS patch that replaces hw folder in CyanogenMod with my patch.Now,i tell the updater script to delete the hw folder in lib and make another one and put my files in there,you,a normal user will flash it and it would work,but a rom maker without seeing that i have told the updater script to delete hw folder,adds my lib files to the existing lib files,which causes the rom not to boot.So,study the updater-script of patches and see what they do before you jump in and start doing things your own way and mess things up.I will write down a few updater-script commands here and what they do for your convenience now.Here you guys go with it:
mount-mounts a filesystem
is_mounted-checks if a filesystem is mounted
unmount-Unmounts a filesystem
format-format a filesystem (duh..)
delete-Deletes a single file
delete_recursive-Deletes a folder and all of its contents
show_progress-Display flash progress
package_extract_dir-Extract all the files present in a directory to a specified directory
package_extract_file-Extract single file from directory to specified target
file_getprop-dont know much about this one
symlink-Unlinks any existing symbolic links before creating the new symbolic links.
set_perm-Sets permissions for a file,note you dont write rw-r-r here.Its the numbers,for example,for root access,you write 777(right?),not anything else
set_perm_recursive-Sets permissions for a full directory,for example,if you specified a folder,permissions for the folder and all files in it will be set.
getprop-This function returns the value of the property specified. This is used to query platform information from the build.props file.
write_raw_image-Writes a raw image into a partition
apply_patch-Applies patches to a directory -_- (dont you guys understand it just by reading that? )
apply_patch_check-Checks if a file can be patched or if they have been patched
apply_patch_space-Checks if there is enough space to apply a patch
read_file-Reads contents of a file
sha1check-If only data is specified, then the function returns the sha1_hex string of the data. The optional parameters are used if you want to verify that the file you are checking for is one of a list of hashes. It reutrns the hash it matches, or returns nothing if it doesn't match any of the mentioned hashses.
ui_print-It outputs a message to the users while flashing.So,if you see something like 'This is so awesome',know that its not such a big deal and that its just a line of editing here
run_program-Runs a program
ifelse-This is the if-then construct of the Edify scripting language. The truecondition or falsecondition arguments can be a single edify command or a script block. Script blocks can be formed by enclosing the parameter with parenthesis, and seperating the commands with semicolons
abort-duh..it aborts script execution
assert-If condition evaluates to false, stops script execution, otherwise continues processing.
Thats it,dont worry after seeing all these commands.You wont see them all in most of the roms.Here is a list of commands that you usually see in a updater-script.
ui_print
mount
unmount
delete
delete_recursive
package_extract_directory
symlink
show_progress
set_perm
set_progress
set_perm_recursive
getprop
run_program
assert
Now on making it a flashable zip,archive them to a zip file.Get a signer here: http://forum.xda-developers.com/showpost.php?p=6050996&postcount=2
NOTE:Signing is not necessary
The instructions on using that are given with it.Just rename it back to the name you like after signing it.
Thanks to everyone.Especially,freeyourandroid,XDA and TeamCooper and all members of XDA developers and to me (well,you are the one who does that,remember that button Jk )
Hope this helped you guys..Again,this is a thread aimed at educating the new members,not advanced guys.Sorry if i missed anything or made a mistake..Please give me suggestions on this too.Will add more info to this thread when i have the time[/SIZE]
good guide
Looks good
Very helpful.
Fix those grammatical errors !
*grammar nazi alert*
Herpderp Adreno + Tegra.
gOOD guide overall but you shiould make it more advanced
EmoBoiix3 said:
Fix those grammatical errors !
*grammar nazi alert*
Herpderp Adreno + Tegra.
Click to expand...
Click to collapse
Aah....grammar hitler
slaid480 said:
gOOD guide overall but you shiould make it more advanced
Click to expand...
Click to collapse
Yep..I know that..I will work on it but i dont have much time now
This is a great guide , it'll help me a lot ^_^ thanks.
Great tut dude
Is an update needed??I dont think so because it didnt even stay on the front page for a day
Awesome guid please add some more advanced features and custom rom building guide also if u can. :thumbup:
Sent from my GT-S5830 using Tapatalk
The bad effect will be more and more new custom firmware which is actually just a re-branding
ketut.kumajaya said:
The bad effect will be more and more new custom firmware which is actually just a re-branding
Click to expand...
Click to collapse
What???I dont get you
mor_1228 said:
Awesome guid please add some more advanced features and custom rom building guide also if u can. :thumbup:
Sent from my GT-S5830 using Tapatalk
Click to expand...
Click to collapse
I will add them by tonight or something like that when i have time..Not much time now,stupid exams Oh,i hate them
Originally Posted by ketut.kumajaya
The bad effect will be more and more new custom firmware which is actually just a re-branding
Prawesome said:
What???I dont get you
Click to expand...
Click to collapse
Click to expand...
Click to collapse
i got what he is trying to say.
he is saying that due to rom building guides noobs will also learn how to build custom rom but they may not have that knowledge skills to make a distinguished ROMS they will be building common roms with little or no difference, difference will be only that different people will release rest things will be kind of same only no drastic changes.
hope i am right
mor_1228 said:
i got what he is trying to say.
he is saying that due to rom building guides noobs will also learn how to build custom rom but they may not have that knowledge skills to make a distinguished ROMS they will be building common roms with little or no difference, difference will be only that different people will release rest things will be kind of same only no drastic changes.
hope i am right
Click to expand...
Click to collapse
Maybe..But i am tired of questions on building custom roms..Recently,there were a lot of questions on building custom roms
Yeah.. i'm a newby become smarter... thx for share...
Sent from my GT-S5830 using xda premium
I will add more info about the boot.img and framework-res.apk tonight
Nice work, thank you
If you have time, can you please post a guide on how to sign APK files?
For example, if i want to edit an icon of an app, i change the icon in the .apk but then i have to sign it, how can i do it?
On the net i found lots of guides and programs but none of them worked for me...
Anyway good work
Hello i was wondering if anyone would be able to help me enable spell checker on the s5. (not autocorrect or predictive text on the keyboard).
I know other people have been able to do it on previous versions of the galaxy and also on the note, By editing Secsettings.apk & framework2.jar, such as in this following link: http://forum.xda-developers.com/showthread.php?p=34856343
Now i am not sure if it would be as simple as this, but i am sure someone on here would be able to enable the spell checker on our s5. If this is all it involves i am able to compile and decompile these two things and edit them myself, but i am pretty sure these files have changed due to the new 4.4.2 touchwiz on the s5.
If it was possible to create a flashable zip file that would edit the certain files or apps needed, that would be helpful and lot easier for a lot of people out there. But i am not sure if that's possible.
I am sure im not the only out there that would like this feature on our new s5, so you would be helping a few of us out.
anyone that would be able to give me some insight or would be able to do this, it would be much appreciated. cheers.
[SOLVED]
With this guide http://forum.xda-developers.com/showthread.php?t=2543967&page=4 and this one http://forum.xda-developers.com/showthread.php?t=2251719 I modified framework2.jar (in system/framework folder)
SecSettings.apk is in system/priv-app for S5.
Do not forget to set the correct permissions of files after copy in system memory.
Menu was enabled, but no RED UNDERLINE appear for errors (with google keyboard installed and all options checked).
The Mod is in this way useless!
It fully run only in ART runtime. (Why??)
.
Have you tried?
.
Rulesless said:
Have you tried?
.
Click to expand...
Click to collapse
sorry i only just saw your reply! I am having troubles with my phone at the moment so once i fix it i will try decompiling those apps and adding those lines.
thank you for your reply and sorry for my late reply!
After I install a rom I delete about 130 apk with Titanium Backup.
Can somebody point me in a direction on how I can make a flashable zip for removal?
I do not know where to find the full names of the apk's and where to start.
I have screenshots of all apk's I delete with TB.
LyLu said:
After I install a rom I delete about 130 apk with Titanium Backup.
Can somebody point me in a direction on how I can make a flashable zip for removal?
I do not know where to find the full names of the apk's and where to start.
I have screenshots of all apk's I delete with TB.
Click to expand...
Click to collapse
I might be able to help with this.
I wished to created one and managed to seek help on XDA on accomplishing this.
I've attached the debloat script.
In order to edit it you'll need to open it up on a computer and use Notepad++, thought when I used that I seemed to always get an error then when attempting flashing in TWRP. So I used my phone to do so.
Navigate to:
META-INF/com/google/android and open the updater-script file
You'll need to add/remove the lines such as:
delete_recursive("/system/app/AAAService");
Just make sure that you keep all formatting the same, such as making sure no unnecessary spaces are left in between lines and that each line keeps the semi-colon at the end of each sentence.
Then flash in TWRP.
Be mindful that there is part in that script that will wipe the caches too. Also the script is a little messy and I need to get round to deleting some as I think there are some duplicates. It's a huge heavy debloat list at present, inclusive of alot of Samsung stuff. So edit accordingly.
I've settled just for freezing them so far but it's my intention to finalise this debloat script and use after flashing a new rom.
Let me know how it goes.
cd993 said:
I might be able to help with this.
I wished to created one and managed to seek help on XDA on accomplishing this.
I've attached the debloat script.
In order to edit it you'll need to open it up on a computer and use Notepad++, thought when I used that I seemed to always get an error then when attempting flashing in TWRP. So I used my phone to do so.
Navigate to:
META-INF/com/google/android and open the updater-script file
You'll need to add/remove the lines such as:
delete_recursive("/system/app/AAAService");
Just make sure that you keep all formatting the same, such as making sure no unnecessary spaces are left in between lines and that each line keeps the semi-colon at the end of each sentence.
Then flash in TWRP.
Be mindful that there is part in that script that will wipe the caches too. Also the script is a little messy and I need to get round to deleting some as I think there are some duplicates. It's a huge heavy debloat list at present, inclusive of alot of Samsung stuff. So edit accordingly.
I've settled just for freezing them so far but it's my intention to finalise this debloat script and use after flashing a new rom.
Let me know how it goes.
Click to expand...
Click to collapse
Thank you very much! I will have a look and test
LyLu said:
Thank you very much! I will have a look and test
Click to expand...
Click to collapse
You're welcome.
I've still yet to test if but waiting in a new version of my favourite rom to be released.
I'm tempted to get a Note 8 port rom and debloat the hell out of it, even all Samsung stuff and try make as pure android as possible experience. Or do the same with an S8 rom. But for now just settled with freezing
would love a reliable list for debloating, this is a great step, thanks
cd993 said:
You're welcome.
I've still yet to test if but waiting in a new version of my favourite rom to be released.
I'm tempted to get a Note 8 port rom and debloat the hell out of it, even all Samsung stuff and try make as pure android as possible experience. Or do the same with an S8 rom. But for now just settled with freezing
Click to expand...
Click to collapse
Now I have taken away some of the lines that makes the phone not boot, like smartcardmanager etc, these can be frosen but not uninstaled from phone, or the phone wont boot!
I have a problem with the script tough, when I try to flash I get error: 6 in TWRP
LyLu said:
Now I have taken away some of the lines that makes the phone not boot, like smartcardmanager etc, these can be frosen but not uninstaled from phone, or the phone wont boot!
I have a problem with the script tough, when I try to flash I get error: 6 in TWRP
Click to expand...
Click to collapse
Ahh really? Sorry to hear this! Like I say I hadn't actually used it as such.
How did you edit the script? As I kept getting that error too, though when I used my phone to edit it rather than using my computer, that worked without that error 6
cd993 said:
Ahh really? Sorry to hear this! Like I say I hadn't actually used it as such.
How did you edit the script? As I kept getting that error too, though when I used my phone to edit it rather than using my computer, that worked without that error 6
Click to expand...
Click to collapse
Notepad+
What app you use to edit on your phone?
LyLu said:
Notepad+
What app you use to edit on your phone?
Click to expand...
Click to collapse
I used X-plore and open as a text document. Then used the edit button (top right), made ammendments and then save
This script will be a massive benefit to those (like me) you want a lite ROM with minimal Samsung stuff, thanks.
cd993 said:
I might be able to help with this.
I wished to created one and managed to seek help on XDA on accomplishing this.
I've attached the debloat script.
In order to edit it you'll need to open it up on a computer and use Notepad++, thought when I used that I seemed to always get an error then when attempting flashing in TWRP. So I used my phone to do so.
Navigate to:
META-INF/com/google/android and open the updater-script file
You'll need to add/remove the lines such as:
delete_recursive("/system/app/AAAService");
Just make sure that you keep all formatting the same, such as making sure no unnecessary spaces are left in between lines and that each line keeps the semi-colon at the end of each sentence.
Then flash in TWRP.
Be mindful that there is part in that script that will wipe the caches too. Also the script is a little messy and I need to get round to deleting some as I think there are some duplicates. It's a huge heavy debloat list at present, inclusive of alot of Samsung stuff. So edit accordingly.
I've settled just for freezing them so far but it's my intention to finalise this debloat script and use after flashing a new rom.
Let me know how it goes.
Click to expand...
Click to collapse
Thanks...but it´s possible add system apps too?? After the debloat i need to install some system apps to my rom....if the script do that it was very very nice tooo ....can you help me???