[Q] Changing ROM pngs? - AT&T Samsung Galaxy S II Skyrocket SGH-I727

Is it possible to take a ROM zip (AOKP, for example) and change around some of the pngs (in SystemUI.apk, for example) before it is installed?
I know how to make the changes I would want to do, and I have the pngs I would want to change; I just want to know if it's possible to do so prior to installation without any issues.

Anyone know?
If not, does anyone know if doing this might mess up my phone? I'd rather not brick my phone.

This is really interesting..
Even I am waiting for the answer :fingers-crossed:

Yea that should work fine. Just don't unzip the ROM. Leave it zipped and copy/paste in and out of it.
And once you flash the ROM, you can always make more PNG edits to SystemUI.apk, etc. and just cut and paste it into your phone using root explorer.
Sent from my SAMSUNG-SGH-I727 using Tapatalk 2

For the most part, you can usually add/remove/edit individual files/apks inside a ROM zip as long as you're not messing with the folder structure too much. Just open up the updater-script in notepad++ and you can see how the ROM is actually being installed. It usually just extracts the system folder as a whole, so it's essentially oblivious to what's actually inside it.
Sent from my SAMSUNG-SGH-I727 using Tapatalk 2

Great, thanks for the input.
I've never made a ROM of my own, but I've done some APK theming. I'll have to give it a try. I'll post back with the results.

Related

[How To] Basic Themeing

This is a very basic guide to beginning themeing. It is not meant to be all-inclusive, just some simple steps that can be taken to make your own custom theme fairly easily. This guide should allow anyone to be able to grab images they like from any ROM and incorporate them into their own.
I SUGGEST YOU ALWAYS MAKE A BACKUP OF ANY FILE BEFORE YOU THEME IT AND NANDROID FIRST BEFORE FLASHING
Here is a basic overview of changing images in an apk:
1. Get your base file to theme – framework-res.apk, com.htc.resources.apk, phone.apk ect.
2. “Open” apk archive with 7-zip (don’t unzip!) and drag and drop the new images into the appropriate folder.
3. Flash new file.
Now some details:
1. The first step is to obtain the file you are going to theme. The file you are themeing ( i.e. going to flash to your phone) must come from the ROM you are currently running. Always use files from your current ROM as a base, however the images you want to change can come from other ROMs, or you can edit existing ones or make your own from scratch. You can obtain your theme base through an ADB pull of the files from your phone, or simply downloading the ROM zip file and extracting the files you need.
2. Now that you have the file to theme, don’t touch it! OK, more specifically, you won’t unzip or do anything to this file except “open” it with 7-zip (unless this is a market app, but more on that later). You are going to drag and drop the new icons into this file by “opening” it and navigating to the appropriate folder. The images you want to change are stored in the apk under /res/drawable-hdpi. Once you have your new icons from other sources, open your base file and navigate to this folder and drop them in.
3. Now you can flash this new file. I have provided empty zip files that you can place your themed files into and flash in recovery. Place your framework-res.apk and/or com.htc.resources.apk into the /system/framework folder located in the zip file provided. Now highlight the META-INF and system folders and zip them up. You can now place this file on the root of your SD card and flash. System apps can be placed under /system/app in the zip file.
Some more info on common themeable files:
Framework-res.apk – this is the meat and potatoes of a theme. On an AOSP ROM it will contain almost everything you want to theme aside from individual apps themselves. Sense ROMs have another file com.htc.resources.apk, as well as framework-res.apk. Both of these files are located in a ROM under /system/framework.
System apps: These apps come packaged in a ROM under /system/apps. They can be themed in the same manner as a framework apk. Some of these apps include Gmail, browser, camera, ect. Place them in your flashable zip under the folder /system/app.
Market apps: These apps are downloaded from the market and are can be pulled from your phone from /data/app. These files require a bit more to theme. They don’t share the same signature as the system apps and you must resign them using a program such as apkmanger. Place them in your flashable zip under /data/app.
If there are any errors, or if anyone has suggestions please let me know. I may have over looked some details, ect.
Thanks to everyone on XDA who has shared their knowledge and made this a great community!
Thanks that will be helpful
Sent from my PC36100 using XDA App
so using this guide we can pull parts and what not from other elements of themes we like and create our own framework to push back? Also, based on what you have, shouldn't it be easy to put this up on bid for hire (?) website to create a program to automate that?
xlGmanlx said:
so using this guide we can pull parts and what not from other elements of themes we like and create our own framework to push back? Also, based on what you have, shouldn't it be easy to put this up on bid for hire (?) website to create a program to automate that?
Click to expand...
Click to collapse
Yes the idea of this guide was to help people pick and choose icons they like in other ROMs and add it to their own. I'm not sure what bid for hire is?
its a website where you can load your requirements and folks can bid to do your work
linky
nukedukem said:
Yes the idea of this guide was to help people pick and choose icons they like in other ROMs and add it to their own. I'm not sure what bid for hire is?
Click to expand...
Click to collapse
xlGmanlx said:
its a website where you can load your requirements and folks can bid to do your work
linky
Click to expand...
Click to collapse
Interesting. Didn't know anything like this existed.
Sent from my EVO (CM6.1) using XDA App
Thank you, thank you!!!! I've been looking for something like this for a while.
evolishesh said:
Thank you, thank you!!!! I've been looking for something like this for a while.
Click to expand...
Click to collapse
No prob. Let me know if it works for you.
I couldn't get the auto signing to work, but the manual way of doing it worked.
Hmm, I got a boot loop on first try and doing this. Does that mean something went wrong with the signing, or that what I created for the theme was wrong? I used the empty .zip folder and re-zipped it, so I don't think that is the issue.
JasonK75 said:
Hmm, I got a boot loop on first try and doing this. Does that mean something went wrong with the signing, or that what I created for the theme was wrong? I used the empty .zip folder and re-zipped it, so I don't think that is the issue.
Click to expand...
Click to collapse
The signing should be ok. If you are using Amon_ra recovery it wont let you flash an unsigned zip I believe. Are you on sense or AOSP? Are you editing images or just copying from other ROMs?
What you might want to do is just create a simple test file. Change just one image and then flash that. That should let you know that your process is correct.
I using Amon Ra and using AOSP. I was moving some items out of a sense ROM so I guess that is where I might have went wrong. I think I'll take your advice and move just a single image and see how that works for me. Thanks!
I tried again this time I ended up stuck at the EVO white screen. I'm guessing it doesn't like the sense part I'm trying to throw in there. I'll have to try again with a AOSP theme instead.
Sent from my EVO (CM6.1.1) using XDA App
A couple things to look out for when swapping sense/CM icons - some file names are slightly different between sense and AOSP. Rename any sense icons to their AOSP counterparts and vice versa. Also, double check the image size of the icon is the same in both, i.e. 70x70 pixels, ect. and make sure you are not adding images that don't exist normally in the framework. For example there wont be any 4G icons in CM framework.
Also, make sure you aren't unzipping the new framework-res.apk you want to theme and flash, or trying to resign it. Only sign the flashable zip, not the individual files inside. The only thing you want to do with the framework-res.apk you will package and flash is open (not unzip) with 7-zip and navigate to the res/drawable-hdpi folder so you can drag and drop the new icons into it, overwriting the old.
I hope that helps!
How important is it to re-sign? I have modified the Framework and Resources apks with 7zip by switching images out. I have also modified the Rosie.apk. I put everything back where it was supposed to go, backed out of 7-zip and flashed. I have never had an issue with it, nor have I re-signed it. Just wondering.
spence341 said:
How important is it to re-sign? I have modified the Framework and Resources apks with 7zip by switching images out. I have also modified the Rosie.apk. I put everything back where it was supposed to go, backed out of 7-zip and flashed. I have never had an issue with it, nor have I re-signed it. Just wondering.
Click to expand...
Click to collapse
AFAIK if you are on clockwork recovery, I don't think it checks for signatures. I think Amon_ra requires a signed file to flash. I think it's just added protection against flashing any old junk. If you can flash in amon_ra without a signature and you don't have problems then I wouldn't worry about it. It's the signature of the framework-res.apk ( or com.htc.resources.apk) that's important. That's why you don't unzip it.
I think that
1.7.0.2 = yes
1.8 = no
nukedukem said:
AFAIK if you are on clockwork recovery, I don't think it checks for signatures. I think Amon_ra requires a signed file to flash. I think it's just added protection against flashing any old junk. If you can flash in amon_ra without a signature and you don't have problems then I wouldn't worry about it. It's the signature of the framework-res.apk ( or com.htc.resources.apk) that's important. That's why you don't unzip it.
Click to expand...
Click to collapse
nukedukem said:
A couple things to look out for when swapping sense/CM icons - some file names are slightly different between sense and AOSP. Rename any sense icons to their AOSP counterparts and vice versa. Also, double check the image size of the icon is the same in both, i.e. 70x70 pixels, ect. and make sure you are not adding images that don't exist normally in the framework. For example there wont be any 4G icons in CM framework.
Also, make sure you aren't unzipping the new framework-res.apk you want to theme and flash, or trying to resign it. Only sign the flashable zip, not the individual files inside. The only thing you want to do with the framework-res.apk you will package and flash is open (not unzip) with 7-zip and navigate to the res/drawable-hdpi folder so you can drag and drop the new icons into it, overwriting the old.
I hope that helps!
Click to expand...
Click to collapse
Thanks, any advice does help.
I did make sure the the icons I was swapping out were named the same thing in the CM ROM, but I didn't check the size of it at all.
I didn't unzip the famework-res.apk but instead just went into it with 7-Zip and dragged the icons into that. Then I backed out of 7-Zip so that it would save and close everything properly - know that does work because that is how I add the Fold transistions to the ROM - and then I put the famework-res.apk into the folder and zip it up per your instructions above. Then I manually sign it (still haven't been able to get the auto-signing to work) and then flash.
I'll have to try again moving a CM theme to the CM framework-res.apk and see if it is working. What I was attempting to do was take, from the Batman Theme for sense, the drop down notification shade with the Bat Icon and put it into the CM ROM. I don't know if you have time to try it yourself to see if it works, or if you get the same issues that I had.
Either way, thanks for the help! I know I'll get this theming down at some point!
nukedukem said:
No prob. Let me know if it works for you.
Click to expand...
Click to collapse
Hey buddy.
I’m stuck. I had to download and install Eclipse with the sdk plus java. I don’t know where to go from there. Every time I open the rom that I want to theme and get the framework.apk and edit the PNG’s , how do I go about saving them? Do I just used the same name as the old ones or I have to save them with a new name.
Or pm Me.
xlGmanlx said:
I think that
1.7.0.2 = yes
1.8 = no
Click to expand...
Click to collapse
So the new amon_ra doesn't require a signed file to flash? I'll make a note off that. Thanks.
JasonK75 said:
Thanks, any advice does help.
I did make sure the the icons I was swapping out were named the same thing in the CM ROM, but I didn't check the size of it at all.
I didn't unzip the famework-res.apk but instead just went into it with 7-Zip and dragged the icons into that. Then I backed out of 7-Zip so that it would save and close everything properly - know that does work because that is how I add the Fold transistions to the ROM - and then I put the famework-res.apk into the folder and zip it up per your instructions above. Then I manually sign it (still haven't been able to get the auto-signing to work) and then flash.
I'll have to try again moving a CM theme to the CM framework-res.apk and see if it is working. What I was attempting to do was take, from the Batman Theme for sense, the drop down notification shade with the Bat Icon and put it into the CM ROM. I don't know if you have time to try it yourself to see if it works, or if you get the same issues that I had.
Either way, thanks for the help! I know I'll get this theming down at some point!
Click to expand...
Click to collapse
OK I'll try and do what you are trying to do and see if it works...
evolishesh said:
Hey buddy.
I’m stuck. I had to download and install Eclipse with the sdk plus java. I don’t know where to go from there. Every time I open the rom that I want to theme and get the framework.apk and edit the PNG’s , how do I go about saving them? Do I just used the same name as the old ones or I have to save them with a new name.
Or pm Me.
Click to expand...
Click to collapse
So now you have an unzipped framewor-res.apk with a bunch of images. This framework should be the one that you want to take icons from. If not, start over with the ROM you want to copy images from. You will want to copy the images you want to put into another ROM so that you can dump them into the new framework-res.apk. After you figure out what icons you want to bring to your new framework, get a clean version of framework/com.htc from the ROM you are actually running - i.e. if you are running myn ROM on your phone, download the myn ROM and pull out the framework-res.apk or com.resources.apk that you are going to theme.
Now with this fresh clean framework you will "open" it with 7-zip to navigate to the /res/drawable-hdpi folder so you can now drag and drop the images you want to copy over into it. Then the close the 7zip window and your framework-res.apk is all set to flash. You don't need to rename if the file names are the same, you can just drag and drop and the files will be overwritten in the new framework.

Ways to make a rom

By any chance could someone tell me the best way to make a rom, I have a droid 3 and really want to make a rom but I don't know where to start, thanks in advance
Sent from my DROID3 using XDA App
The best roms start with 3 eggs and little bit of milk to make them fluffy. Whisk briskly!
If you want to jump in, this is a good place to start http://source.android.com/source/index.html
If you just want to dip your toe in the water, then you could start with modding roms, such as adding/removing apks, theming, writing update scripts.
Find a rom and unzip it. Look inside, poke around. Don't be shy-take things apart. Peel back the layers until you find xml and png files. Then, put it all back together and see if you can get it to flash.
Thanks
Sent from my DROID3 using XDA App
thanks so much for the info!
If you download a rom and unzip it, there will be a META-INF folder- look in here- there will be some crypto certs and a com/google/android/ folder which will have the updater-script and update-binary. The script is how the phone knows what to do with the rom. Read through the script and try to decipher what it is actually doing. It will be different for some roms. For example, the cyanogen roms will back up some system apps and replace them after flashing.
You might also come across a boot.img in the root directory of the rom. If you do, there will be some instructions in the updater-script for what to do with it.
Next look in the system/app directory- you'll find a bunch of apk files. These are actually in zip format, so you could unzip them to see what is inside.
A basic test would be to add or remove an apk to the system apps and then get it to flash. Of course you'll need a rooted phone and maybe jarsigner or signapk. Signing a rom will put all those CERT.RSA files back into the META-INF/ folder, which contain crypto hashes of all the files and the names of the files. Some recoveries will allow you to flash an unsigned rom, but you might as well figure out how to sign them. It's in the android link I posted earlier.
Good luck!
Thank you for that also this is very helpful I was kinda confused on where to start with aosp, also that the droid 3 has a locked bootloader
Sent from my DROID3 using XDA App
By any chance would you know how to do some theming? If I understand right it has to do with decompiling the framework-res and systemui apks, and replacing some pngs and xmls with others right?
Sent from my DROID3 using XDA App
I just got started with this so I am by no means an expert. I think you'll want to start by deodexing a rom so that you can make changes to the res, xml, etc. I think most stock apps come as a two part package- an .apk file and an .odex file, both with the same names. Find a stock app and look in the framework and app folders. De-odex-ing takes the odex file, de-compiles it, and then recompiles it into a classes.dex file that is put back into the apk or jar file. This configuration will should allow you to make changes without having to compile the rom from scratch... at least that is my understanding.
Find an apk that doesn't have an odex file and look for the classes.dex file inside. Then take a peak in the res folder in the apk. In the res folder you'll find all sorts of xml and png files.
To get started with decompiling, you'll want baksmali http://code.google.com/p/smali/wiki/DeodexInstructions
Take a look at the issues. JesusFreke wrote some interesting comments in issue 61.
I think there are a few other packages that will do the same thing, and there are certainly a few scripts that will work too.
I ran into some issues with deodexing honeycomb- I outlined the process here http://forum.xda-developers.com/showthread.php?t=1324653.
This is also a good source http://wiki.sdx-developers.com/index.php/How_to_deodex_a_ROM
Good info, thanks.
thank you you have been extremely helpful, im gonna try to get my rom out by sometime this week thank you
I just did some mini-theming. I have an ASUS Transformer- the stock rom has it's own back/menu/home buttons. I wanted a more complete honeycomb look, so I grabbed the stock honeycomb versions from a xoom rom, and added them into my deodexed stock ASUS SystemUI.apk. Oddly enough, if I signed the apk, it wouldn't work, but if I left it unsigned, it works fine.
thats odd, i thought you needed to sign it for it to work

[Q] Updater script and build.prop

Hello all!
I am looking to automate a couple things I do when I flash a new build of Cyanogen mod. Namely my couple edits of the build.prop.
Yes I do understand that some will disagree with me editing the build.prop, and some may say it's dangerous. I'm not here to discuss those matters.
What I do want to discuss is that I want to create a flashable zip that contains an updater script that will essentially add my changes for me before I even start Cyanogen mod and save me time and effort. I am very unfamiliar with such things and was hoping someone could give me a hand and point me in the right direction. That way I can do my own thing and ask less questions in the future.
P.S. Do note I do prefer to be taught than just handed a script with everything I want in it.
Zadeis said:
Hello all!
I am looking to automate a couple things I do when I flash a new build of Cyanogen mod. Namely my couple edits of the build.prop.
Yes I do understand that some will disagree with me editing the build.prop, and some may say it's dangerous. I'm not here to discuss those matters.
What I do want to discuss is that I want to create a flashable zip that contains an updater script that will essentially add my changes for me before I even start Cyanogen mod and save me time and effort. I am very unfamiliar with such things and was hoping someone could give me a hand and point me in the right direction. That way I can do my own thing and ask less questions in the future.
P.S. Do note I do prefer to be taught than just handed a script with everything I want in it.
Click to expand...
Click to collapse
Same here my friend same here.
But what i do to my ROMs when i have edits i wanna make is i extract the build.prop from the zip and edit what i want using Notepad++ then drag the build.prop back to the 7zip window to add it back to the zip and i flash. Simple as that
Now, if you really wanna get fancy, you could create an sh script that will read the build.prop AFTER flashing the ROM. It will read the build.prop, then change the things you want for you.. I dont really recommend this method as its not very simple and quite frankly im too lazy to create the sh script for myself. But i do believe it is possible.
elesbb said:
Same here my friend same here.
But what i do to my ROMs when i have edits i wanna make is i extract the build.prop from the zip and edit what i want using Notepad++ then drag the build.prop back to the 7zip window to add it back to the zip and i flash. Simple as that
Now, if you really wanna get fancy, you could create an sh script that will read the build.prop AFTER flashing the ROM. It will read the build.prop, then change the things you want for you.. I dont really recommend this method as its not very simple and quite frankly im too lazy to create the sh script for myself. But i do believe it is possible.
Click to expand...
Click to collapse
Interesting... I have tried the modify then drop the build.prop back into the zip, using 7-zip even, and it refuses to do so. hence me trying to do it in the manner of an updater script.
Zadeis said:
Interesting... I have tried the modify then drop the build.prop back into the zip, using 7-zip even, and it refuses to do so. hence me trying to do it in the manner of an updater script.
Click to expand...
Click to collapse
You could always make a second zip containing your modded build.prop. I remember having to do this with one of my edits on my S2 cause the ROM wouldnt set itself up with the changed Build.prop.
elesbb said:
You could always make a second zip containing your modded build.prop. I remember having to do this with one of my edits on my S2 cause the ROM wouldnt set itself up with the changed Build.prop.
Click to expand...
Click to collapse
Hmm maybe. I'll try using winrar to see if it makes any difference using the same drag and drop new build.prop method just to satisfy my curiosity.
Could it be an MD5 issue since you are "modifying" the zip?
Still Charged Up
Reilly1812 said:
Could it be an MD5 issue since you are "modifying" the zip?
Still Charged Up
Click to expand...
Click to collapse
Actually winrar worked. 7-zip can delete files from a CM archive but not add for some reason when winrar can do both. Not sure why but I still prefer 7-zip myself for everything else.
Though while this method does work I still wouldn't mind knowing how to add my changes via build.prop to streamline the entire process of updating CM.
Zadeis said:
Actually winrar worked. 7-zip can delete files from a CM archive but not add for some reason when winrar can do both. Not sure why but I still prefer 7-zip myself for everything else.
Though while this method does work I still wouldn't mind knowing how to add my changes via build.prop to streamline the entire process of updating CM.
Click to expand...
Click to collapse
7zip works for me without any issues..
Sent from my ASUS Transformer Pad TF300T using Tapatalk 2

How to create your own tw rom on your phone using root explorer

In this tutorial I will show you how to create your own T.W. rom using your GS3 and Root Explorer. There are many ways you can create a rom but not everyone has the time to sit at a computer every night. However, your phone is always on you and can find a few minutes here and there to create your own masterpiece.
For the sake of this tutorial, we will name our new rom "SLICK".
Here are a few things you will need...
1. The rom base from Scottsroms. I'm NOT talking about Cleanrom but the unmodified stock rooted rom.
2. Root Explorer.
3. Script Manager
4. Any mod you can flash or come up with on your own.
1. GET STARTED!
Download the base rom to your phones EXT-sdcard and extract it using Root Explorer. After it's extracted the new unziped rom will be located in /storage/sdcard0/SpeedSoftware/Extracted. The extracted rom is now your new base. At this point it would be a great idea to move it to your EXT-sdcard and create a new project folder for it and label the folder "Project SLICK". inside the folder is your rom. lets rename that rom "SLICK".
Lets open your new SLICK rom. You should have some folders...
BOOT IMAGE
DATA
META-INF
SYSTEM
3. THE SYSTEM FOLDER
/SYSTEM/APP
Most of your work will done in the System folder so lets open that up. This is the heart of your rom! There are many folders here but lets start with the app folder. This folder has every app installed in your rom. This is a good time to remove the bloat you don't want in your rom. Go ahead and delete the apk's you don't want or need.
/SYSTEM/BIN
Here you can speed up your system or make it more battery efficient by deleting things like "mpdecision" and things like that. Be careful what you delete though. In general you won't do much in here.
/SYSTEM/BUILD.PROP
Here you can change values or add values. The one value we are concerned with is "ro.build.display.id" This build property's value will be displayed in the end users settings menu under "about phone". So let's give this property the correct value "ro.build.display.id=SLICK ROM v1.0" The rest of the build properties you can do as you wish. Build.prop is simply a text file. You can use the text editor built into Root Explorer.
/SYSTEM/CSC
Open this file and you will see more files. Listed is "feature.xml". Here you can edit values for various items for texting and mms.
/SYSTEM/ETC
Here is where you will find a folder called "init.d". Located in this folder are various text files. The text files are scripts that are told to run when your phone boots. You can add or modify to the existing scripts or create a new text file.
So we went over a few of the basics of modding your new rom and molding it into something you can call your own but does it work??
4. TESTING YOUR NEW BASE.
So we have already modified our rom a considerable amount and should have a good solid base. Before we go any further we should really test things out first. If we did something wrong earlier we will at least have an idea where to look. So lets flash our new rom. Go to you EXT-sdcard and find our project folder. you should still have your SLICK file. Zip this file with Root Explorer. Make sure you have a good battery and a cool environment because it's going to take your GS3 about 30min of hard work to zip this file. When that is finally completed, flash your new rom located in /storage/sdcard0/SpeedSoftware/Archives. Flash it just like you would any other rom.
Test your new rom out on your GS3 and see how things are running. Check your existing modifications you did earlier. If everything looks good, we can continue modding. If not you will need to go back to your base to see where you went wrong. This is also a great time to check your init.d scripts. One way to do this is to download "Script manager" from the market and click on your init scripts to read there log. It will tell you if something went wrong.
If everything is looking good, we can continue modding...
5. THE MODS
So we have that nice clean base but what about all them mods in the roms we download and flash everyday? There are a few different ways we can do this and we will start with the easiest but first, do a nandroid backup of your new base. If one of your mods you perform next goes bad it's simply quicker to recover. Now, If you have flashable zips of some of the mods you like then you can flash them now and make sure they are working the way they should in your rom. Remember, just cause we have the d2vzw does not mean mods from the sprint or T-mobile won't work on our devices. Sometimes it's worth a try. It's all about which firmware they are on and what has changed with the firmware.
So we flashed a few mods but don't have everything we wanted. At this point you are left with only one option and that is to get on that PC of yours and learn to decompile a APK. I may touch on this subject later as it is a bit more involved for someone new to this sort of thing.
6. UNDERSTANDING THE FLASHABLE ZIP
The alternate method of a flashable zip is to extract your flashable using Root Explorer and picking it apart. For example we will use "Lean Kernel" and kill 2 topics with one stone. If you unzip the kernel you will see...
BOOT.IMG
META-INF
SYSTEM
As you can see there are some familiar files to us just like when we extracted our base rom in the beginning. Basically when you flash a mod like this or any flashable for that matter, it installs files into your rom in certain places. In this example we will be installing in BOOT.IMG and SYSTEM. But what? And what is that META-INF file for? Well this META-INF file is what tells your rom what files and what to do with those files. Inside META-INF is a text file called an "updater script".
Here is what it looks like...
Code:
show_progress(0.500000, 0);
mount("ext4", "EMMC", "/dev/block/mmcblk0p14", "/system");
package_extract_dir("system", "/system");
set_perm(0, 0, 0777, "/system/etc/init.d/00leanKernel");
unmount("/system");
assert(package_extract_file("boot.img", "/cache/boot.img"),
write_raw_image("/cache/boot.img", "/dev/block/mmcblk0p7"),
delete("/cache/boot.img"));
show_progress(0.100000, 0);
Line 2 shows it mounting the system so we can write to it.
Line 3 shows us extracting the entire directory of the system file in the flashable into the system file of our rom.
Line 4 shows we are setting permissions for one of the system files we just installed in the rom. In this case it is an INIT.D file.
Line 5 shows us returning the system to an un-writable state.
Line 6 shows we are now installing the other file called BOOT.IMG.
So we installed BOOT.IMG and the SYSTEM file. The BOOT.IMG file is usually only found in a rom or kernel zip so most of the time you won't see this file in a flashable but I wanted to use this as an example to show a bit about the kernel side of things.
Ok, so lets get back to the original files of this flashable zip. The updater script stated we installed a new system file into the rom so whats in there? If we open the SYSTEM file from our flashable with Root Explorer you will find a file hierarchy...
SYSTEM
-- ETC
--- INIT.D
---- "00LEANKERNEL"
-- LIB
--- MODULES
---- Listed here are a bunch of ".ko" modules and i'm not listing them all.
So whats the point of all this? Well lets say when we originally debloated our rom in the begining we could of included some of our flashable mods like a custom kernel before we zip the rom to test the base. So in this case we can manually install this kernel before we zip the base. We can take the BOOT.IMG from our extracted kernel and replace the BOOT.IMG in our extracted rom. We only need the files from the flashable so we need to copy and paste the "00LEANKERNEL" file from our flashable to our roms /system/etc/init.d folder. We can also take those ".ko" files from the flashable and dump those into the /system/lib/module folder and we are done. You have now manually installed a kernel into your base rom before you zipped it. Now when you zip your rom and flash it, your new base rom will boot with your custom kernel. Since we manually installed the kernel we don't need the META-INF file provides an auto install script for installing through recovery. Technically we could take all of our flashable mods, extract them, look at the file hierarchy and copy and paste the those files to our extracted base rom. That way we can zip our rom and test it with the mods right off the bat. You can really make things quicker this way and is in general the way to go.
I think it's rather important to fully understand a flashable zip. How it's built and how it completes it's task. It's used so often and makes mods so incredibly easy to install but it is also what installs our rom! One of the files we see when we open "slick" is a META-INF and there inside is the updater script to flash the rom. Again we are doing the same thing as we do with the flashable mod but this time we are installing a lot more files with a lot more permissions. It is the exact same thing as shown above just a bit more extensive.
7. PUT THE PIECES TOGETHER
Ok so we have our base rom running on our phone and possibly a few mods installed. We also have our extracted and debloated "slick" rom on the EXT-sdcard inside our project folder. The next part is rather easy if you understand how those flashable mods were installed. If you understand the whole flashable and its files, your better off just extracting them and then copy and paste them where they need to go. After you have all your mod files in place you can now zip your official "Slick" rom using Root Explorer of course. Prepare yourself for another 30 minutes for it to zip. After it's zipped your done. You have now created your first fully modded rom! However...
Lets say you don't get the whole flashable thing and or you had made some other changes to the rom while you were testing. Lets say you flashed some mods and created a few init.d scripts or the build.prop along the way. NO WORRIES! We can put the rom together another way. A lot of the mods you flash will install files in some usual areas of the rom like your Framework folder and such. Lets just say we don't know though. You can actually copy complete folders from the rom you are running right there and now and paste them into your extracted "Slick" base rom using Root Explorer. So you can take "/system/framework" from your currently running rom, copy it, and paste it in "/storage/EXT-sdcard/project folder/slick/system/framework". In short just take your copy of the framework file and put it in your extracted base and paste it. Root Explorer will then ask you if you want to replace this file and click yes. You have just transferred any modded file that might have been in framework to your extracted rom. Any folder you may think was modded, simply copy and paste it to your extracted base rom on your EXT-sdcard. Once you think you have it all the modded files transferred you can zip your new "Slick rom! Flash and enjoy!!
FINISHED
So we have now completed our own rom on the device itself. It's really not too difficult just a bit more time consuming with zipping and that. However, you may need to do a bit more research on how to decompile and recompile an APK. This is one of things that can really be a pain to setup. It's again the basics that will kill you. The whole PITA is not decompiling or making changes to a framework file, it's setting up the environment that sucked for me. You have to get the Java and files in order and all the little crap to get it to work. IMO, if you haven't decompiled an APK yet it's really not difficult at all. Like I said. It's the basics. I encourage you to learn this because it's so freakin easy after it's all setup and you will be able to do so much more with your rom. Once you get this APK thing down don't be afraid to take someone elses work and reverse engineer it. Try to figure out what that developer did to accomplish what he wanted. It's a great way to learn and thats what it's about.
I may add to this somewhere down the road but for now it's all I have. I hope this helped and motivated someone to create a rom and begin there journey to become developer someday! We can all use fresh ideas for development. There is so much more to come for Android so get your hands dirty and share!
Thanks guys!
Ha never really thought of doing this on the fly with my phone. Even though all the right stuff was sitting in my face thanks for opening my eyes razz1
Sent from my SCH-I535 using Tapatalk 4 Beta
dincdoes.me said:
Ha never really thought of doing this on the fly with my phone. Even though all the right stuff was sitting in my face thanks for opening my eyes razz1
Sent from my SCH-I535 using Tapatalk 4 Beta
Click to expand...
Click to collapse
It's another way. May not be the fastest way but it's another option. I also wanted to write this as a general rom creation and learning some basics. It's always the basics that will kill a project and motivation. I would like to see a complete newb to be able to complete a rom with this tutorial. Then I accomplished something. Going to have to finish this tomorrow though. It's taking longer than I thought lol.
Yea I mean I'm a newb at doing it from my phone if that counts =) .. What explorer do you like to use to repack the zips. I'm sure I'll try this method soon to play while bored at work. Rom tool box will help with boot animations, fonts and transition animations too take care thanks for giving our community some new skills I'm sure it will help out down the road.
Sent from my SCH-I535 using Tapatalk 4 Beta
Thank you for this post. This will definitely get me to try and make my own ROM the way I like, also I might just learn some new stuff. Great post thanks again
Sent from my SCH-I535 using xda app-developers app
Nice tutorial.
It's a great way to show what can be done just from your phone.
:good:
Right on man. Been waiting for this. Thank you.
Sent from my SCH-I535 using xda app-developers app
dincdoes.me said:
Yea I mean I'm a newb at doing it from my phone if that counts =) .. What explorer do you like to use to repack the zips. I'm sure I'll try this method soon to play while bored at work. Rom tool box will help with boot animations, fonts and transition animations too take care thanks for giving our community some new skills I'm sure it will help out down the road.
Sent from my SCH-I535 using Tapatalk 4 Beta
Click to expand...
Click to collapse
I use androzip man.
Sent from my SCH-I535 using xda app-developers app
More added
So would I make, say ROM manager a system app? Just copy the apk into the /System/App folder?
Evil Genius Jr. said:
So would I make, say ROM manager a system app? Just copy the apk into the /System/App folder?
Click to expand...
Click to collapse
Yes, but not all apps you download from google play work in /system/app. Some want to be installed into /data/app. However /data/app doesn't exist till after the rom is booted. You would need to add the folder to your extracted rom and modify the updater script.
razz1 said:
Yes, but not all apps you download from google play work in /system/app. Some want to be installed into /data/app. However /data/app doesn't exist till after the rom is booted. You would need to add the folder to your extracted rom and modify the updater script.
Click to expand...
Click to collapse
You are the fu**ing man razz1.
Sent from my SCH-I535 using xda app-developers app
That's about all I have for now. OP completed!:sly:
Hello. Ok so I created a ROM what I call MyTWGE (Tuchwiz Google Edition). Followed the instructions, unzipped the stock Verizon OS went into the -app- folder deleted all the Verizon, Samsung and Google apps (only the ones that are download able from Google Play). Replaced the stock launcher with the 5x6 version that I extracted from another zip, replaced the camera with the Google edition camera (download able from GP), replaced the keyboard with the Note2 keyboard (also unzipped from another zip). Looked around and deleted a few more files I found that were connected to some Samsung apps and zipped it up. Flashed the zip yesterday onto the phone and it's ALIVE working.
Thank you for your patience to write up all these instructions. I previously used TB to debloat my phone and that was it, learned a few thing thanks again
Sent from my SCH-I535 using xda app-developers app
Lehocki said:
Hello. Ok so I created a ROM what I call MyTWGE (Tuchwiz Google Edition). Followed the instructions, unzipped the stock Verizon OS went into the -app- folder deleted all the Verizon, Samsung and Google apps (only the ones that are download able from Google Play). Replaced the stock launcher with the 5x6 version that I extracted from another zip, replaced the camera with the Google edition camera (download able from GP), replaced the keyboard with the Note2 keyboard (also unzipped from another zip). Looked around and deleted a few more files I found that were connected to some Samsung apps and zipped it up. Flashed the zip yesterday onto the phone and it's ALIVE working.
Thank you for your patience to write up all these instructions. I previously used TB to debloat my phone and that was it, learned a few thing thanks again
Sent from my SCH-I535 using xda app-developers app
Click to expand...
Click to collapse
Lol the whole time I was reading this I was waiting for you to say something didn't work out for you but it all did I guess. Nice!!
Yeah running for the past 24h no problems everything works. Thanks
Sent from my SCH-I535 using xda app-developers app
---------- Post added at 02:24 AM ---------- Previous post was at 02:07 AM ----------
Only thing that that's annoying is the wifi in the taskbar. I read in one of the posts that I have to go into systemui and some other files within n delete lines 12 through 21 but that didn't work , am guessing I need to decompile systemui to do that. The person in the post didn't clarify and I'm not ready to do that yet. Reason is I don't know anything about programming or linux or decompiler or anything like that. Deleting files I can do replacing some sure. But I'm happy my first attempt to mix something together worked and I'll keep doing it till I actually figure out what it is that I am doing. Thanks again for the post
Sent from my SCH-I535 using xda app-developers app
Yea. Follow Didacts write ups to get you through it. It's all in framework res apk.

REQUEST - Help with destroying the smug default contact picture!

So i've done a thorough Google search and discovered that im not the only one who hates the smug little Samsung man that appears over all your contacts that don't have pictures, or pops up as caller ID.
I did find a post that was relevant to the old S4 which I think sent me down the right path, but i have limited knowledge in compiling and installing systems apps via adb or however.
I believe I have done the leg work, so if someone has a moment to assist in making a flashable zip or providing clear instructions to install a modified systemUI.apk, it would be greatly appreciated.
The offending picture png is located in the above mentioned SystemUI.apk. According to the post i was reading re the S4 there used to be 2 seperate system apps (Call and MMS) that contained the image, but from what i've read and been able to find in relation to the S6 is only the SystemUI.apk
I copied it out, unzipped it, and then replaced it with a random but more suitable picture. I made sure that the picture was exactly the same dimensions. Does it being a greater size cause an issue?
I then compressed it again using 7zip, set the file permission back to rw-r--r-- and.... thats as far as i got.
Im not sure how to test whether what i did is correct, or to install it via recovery as a flashable or push it through adb (i don't know the linux commands). In frustration i did try just renaming the original apk using Root Explorer, but of course immediately got a SystemUI has stopped unexpectedly (im almost positive the smug little man was laughing at me by this point) and forced reboot. Oddly upon reboot my phone functioned as per normal, with the smug little guy still mocking me, even though the SystemUI.apk had been renamed!? That stumped me. I could only think that its somehow referencing the information from somewhere else???? I dunno.
Can someone have a look at the attached and let me know if it should work and how i can try install it?
For your reference the only matching png i could find is located: SystemUI.apk\res\drawable-xxxhdpi-v4\contacts_default_caller_id_list.png
Im sure this is a MOD that the countless other smug man haters out there would appreciate as well
download the modified apk but cant install it
Sent from my SM-G925F using XDA-Developers mobile app
ruud said:
download the modified apk but cant install it
Sent from my SM-G925F using XDA-Developers mobile app
Click to expand...
Click to collapse
No, I believe there's either more to it than just swapping the png out, or the apk needs to be installed via adb seeing it's the stock rom's Ui, but I appreciate your efforts.
The app needs to be signed anyway if you unzip it and zip it again. This can be made with Android Signer or a similar app.
But...for what you want there's no need to uncompress the apk and recompress it afterwards. This procedure is needed if you want to extract or edit certain files (usually .xml files) but not for replacing a resource as a png or image.
First you should have an identically named file and the png should have same resolution (also there are certain specific png's that should be modified only by someone who knows how...so called .9 png's). Considering it's a normal one and it has same resolution (it can be sometimes of different res but phone will resize it and not always the result is what you want), just open the apk with WinRAR for ex (this is what I use) and delete tha original png then add to the archive, in the same place your png.
Should work well, no need for extracting and compressing the files again and so on and I don't advice to do that if you don't know how to sign or deal with apk's
Please note that there could be several folders were the image can be, if the image is a resource that is resolution dependant. So you might find it in hdpi, xhdpi, mdpi, xxhdpi...and similar folders. In this case you should change at least the image in the folder for your specific resolution. But I guess this is not the case since SystemUI is speciffic to a ROM and phone model and should have resources only for it's resolution setup at build time
Good luck
Sent from nowhere over the air...
Hi, thanks for your response. I actually used 7zip to swap the png without extracting it, but my problem is how to replace a system apk from recovery? I have no knowledge of how to do this or make a flashable zip. Thanks in advance
Sent from my SM-G925I using XDA-Developers mobile app
Just use the same way, replace with 7zip. You only need a template flashable .zip. Ask Google for it.
Sent from my SM-G925F using Tapatalk
You can replace the file using the included file manager in TWRP (if you use this recovery). You just have to mount /system before that in order to access the file. You should find SystemUI.apk in /system/app. Alternatively, you could replace the file even with your phone started and with Android booted. Using a root file explorer like ES File Explorer, navigate to /system/app and replace SystemUI.apk there. Then reboot phone for changes to take effect. I strongly recommend to make a safe copy of the file before overwritting it
Second method is easier than the recovery one. You can also use a flashable zip, you can make one yourself by using a flashable zip 'template', that is an empty zip made for flashing in which you just put the files you need to be copied along with their complete path. A quick search will give you several such zip files,I'm on mobile right now and I can't make the flashable zip for you
Sent from nowhere over the air...
Rapier said:
You can replace the file using the included file manager in TWRP (if you use this recovery). You just have to mount /system before that in order to access the file. You should find SystemUI.apk in /system/app. Alternatively, you could replace the file even with your phone started and with Android booted. Using a root file explorer like ES File Explorer, navigate to /system/app and replace SystemUI.apk there. Then reboot phone for changes to take effect. I strongly recommend to make a safe copy of the file before overwritting it
Second method is easier than the recovery one. You can also use a flashable zip, you can make one yourself by using a flashable zip 'template', that is an empty zip made for flashing in which you just put the files you need to be copied along with their complete path. A quick search will give you several such zip files,I'm on mobile right now and I can't make the flashable zip for you
Sent from nowhere over the air...
Click to expand...
Click to collapse
Thanks for the info Rapier. I tried using root explorer to swap it, but as soon as I renamed the original systemui.apk I got a force close error (because the system was obviously running systemui.apk) and I was forced to do a reset to clear the error off the screen.
After rebooting, the apk had be renamed but the system was still chugging along regardless of the fact that this systemui.apk effectively wasn't even there anymore. It was showing as systemui.bak, what I renamed it to. I tried going ahead and putting the modified apk in the directory anyway, rebooted, and nothing. No change to the png whatsoever, even though the png I used was showing in the correct spot and all.
Sent from my SGP611 using XDA-Developers mobile app
lonelydra said:
Just use the same way, replace with 7zip. You only need a template flashable .zip. Ask Google for it.
Sent from my SM-G925F using Tapatalk
Click to expand...
Click to collapse
Thanks for the tip, I didn't know there were just templates available. I'll give it a shot, but by the way it's behaving when I've just replaced the file using a root explorer, I think there's more to it eg. The apk I modified isn't functional or something
Sent from my SGP611 using XDA-Developers mobile app
If you still see the image after replacing the file, it could be that it is not stored only in systemui. It could be in the dialer/phone apk as well or in the framework-res.apk. I saw the little figure you wanna change in several places across the ROM, including in the S-Health app...it is used I think everywhere where there is no picture set for an avatar. It can be that the one you found is for something else
Sent from nowhere over the air...
Rapier said:
If you still see the image after replacing the file, it could be that it is not stored only in systemui. It could be in the dialer/phone apk as well or in the framework-res.apk. I saw the little figure you wanna change in several places across the ROM, including in the S-Health app...it is used I think everywhere where there is no picture set for an avatar. It can be that the one you found is for something else
Sent from nowhere over the air...
Click to expand...
Click to collapse
Damn, but you're probably right. If I decide to pursue this annoying smug little man, am I at least doing it right?
I mean in theory; replacing the png with another of the same dimensions (does size matter?) and as long as I've swapped it out of the apk rather than extracting and compressing again, set the permissions the same and replacing any apk I come across with the new image, it should work yes?
Someone suggested using an overlay function? Would that be easier?
I couldn't find the phone apk for the S6, do you know where I should be looking?
Thanks for all your advice with this!
Sent from my SGP611 using XDA-Developers mobile app
Yes, you're right, if you replace the correct png you should get rid of it.
I was involved in several projects in the past, theming as well as building or porting ROMs so I can help with what I know.
You asked about resolution and yes it does matter. In apk's you might find the png stored in folders dependant on display res and named accordingly: LDPI, MDPI, HDPI, XHDPI, XXHDPI and so on. You MUST change the png in the correct folder or else you won't see any change. If for ex you change the png in MDPI folder and our phone is XXXHDPI...you won't see a change. Also the dimension of the png's differs with each res so it is not ok to just put the same resolution file in all folders. There are several guidelines to be followed when dealing with such images and when replacing resources. I think our phone is XXXHDPI or XXHDPI...not really sure cause I never checked but you can find this info easily. After you find out which it is the right res, replace only the png's in that coresponding folder and leave the others alone.
You might want start looking for that image in the phone/people apk and in the framework-res.apk. Be VERY careful what you do with the framework as it's a main component of the ROM...mess with it and you'll have to reflash the ROM
Sent from nowhere over the air...

Categories

Resources