[Request]Full tutorial to make flashable zip FROM SCRATCH - General Questions and Answers

Hii devs,
I'm a budding developer. I've been trying to make a flashable zip since long time. Came across many tutorials, resources, apps, and a lot more! But none of them seemed to help me make a flashable zip from scratch.. All tutorials either provide a dummy (sample) zip or suggest an app or are incomplete.. But still I haven't been able to find a helpful resource..
My situation:
I made two directories: META-INF & data.
Wrote the updater-script
Added it in META-INF/com/google/android
Verified the syntax of updater-script, everything seemed fine.
Added the required stuff in the data directory.
Compressed the directories (both using normal "New Zip Archive" from Desktop as well as 7Zip).
Signed the zip.
[*]NOW COMES THE PROBLEM: THE update-binary
Tried a lot of resources to obtain the update-binary, took it from a cm nightly for my device, from a dummy zip (which I was able to flash successfully), downloaded it from a tutorial, used an app to make a flashable zip and took out the update-binary from it
BUT STILL NO LUCK
I always get an error in the TWRP recovery:
Code:
E: Error executing update-binary in xxx.zip
Even posted threads in XDA forums, but got replies suggesting me to use ZipMe app..
I humbly request you to provide me a full-fledged tutorial for making a flashable zip, or correct me if I'm going wrong in any step..

Related

Custom clockworkmod compatible update.zip

Hello, I would like to create my own update.zip that would be compatible with clockwork mod. I have several files in several locations that I manually copy over after new installs like multicolored bash nano iwconfig iwlist etc. And I think it would be much easier to create a installable package for that, I also delete a number of built I. Apps like tweeter amazon etc. And I have seen the scripts inside oyhers update.zip's that I could add the bash commands to remove those things as well.unfortunately I know nothing about what clockworkmod wants and I see binarys inside these zips dont know if those are customized for each zip or the same in all of them, I dont know what files or information is absolutely required. The best possible solution is if I had a blank update.zip that held all of the required files settings and all I needed to do was add my files and asd a few lines to a preexisting script to remove sum stock apps.thinking back I might have seen a file containing all the files names and md5 chucksums for each as well which if necessary I can do. Is there something like this available for download sumwhere? If not ajy resources to learn the required information and find the required binarys.thank you in advance.
Sent from my Droid using Tapatalk
Hi,
I've been trying to learn the same thing. I'm curious if you found anything useful since posting this.
Of course, if I find anything, i'll post back here too.
Thanks.
Same problem here
Good to hear someone with same problems. I want to create a generic ROM for myself and I want to use ClockworkMod to help flash it instead of using fastboot.
Well, I have found no documentation about what ClockworkMod may need for a zip file.
But I guess it could be possible to just replace them with your own by downloading an existing zip file created by someone else.
I'll try it to see if that works or not. Of course, a documentation would be better.
I regularly flash a new CM7 Nightly as they are released and I have to manually modify some things each time a new rom is flashed. I change screen density and add a notification ringtone that CM7 does not have. I wanted to automate that. Since I have to reflash the Google Apps each time anyway, I thought why not modify the gapps zip to include my changes. After searching the web I found a little info about how to do it. I just modify the zip on my computer using WinRar, copy the file to my device and re-sign the package using signapktic which is free on the market. Then flash using CWM. It worked great. No more manual adjustments. There are some instructions here which helped me:
http://forum.cyanogenmod.com/topic/15030-moving-apps-to-system/
I been getting into the kitchen
http://forum.xda-developers.com/showthread.php?t=633246
So far i`ve managed to integrate a few apps , ringtone should be easy
next the fonts from utmost rom
thanks to the kitchen, Im now running at script kiddie level

[Q] Script that can be run in Android to create a zip file? [Solved]

I'm trying to write a .sh script for SL4A that would do the following:
1. Unzip XXX.zip to directory YYY (which contains other files)
2. Create a new ZZZ.zip file using all of the contents in directory YYY (new and old files)
I see that busybox has gzip/gunzip/unzip commands, but I'm not really familiar with them, and my brief experimentation hasn't yielded great results. I've figured out step #1, which is just
Code:
unzip XXX.zip -d ./YYY/
Can anyone help me on step two?
I'd also be willing to install a 3rd party app to assist with this task, so long as that app can be automated.
I can, of course, manually extract and zip files in Root Explorer, but I'm looking for a way to automate that functionality.
If it doesn't have to be .zip, you can use tar..
tar xf XXX.tar -C /YYY
tar cf ZZZ.tar /YYY/
Thank you, but unfortunately it has to be zip.
Basically, I'd like to be able to set up a script that creates flashable zips on the phone.
I would have a couple uses for this, but one specific example is for using ZipThemer. ZipThemer still creates flashable zip packages using the old amend scripting, but I am using new CWM that requires edify scripting. The developer is aware of this change, but hasn't yet updated ZipThemer. My idea therefore was to create a script that extracts the needed files from the ZT zip and then puts them into a new flashable package with working edify scripts (that I keep elsewhere on the phone).
So far, all of the amend>edify solutions I've seen are desktop solutions. Since the packages I'd need to create are quite simple, I can keep various edify scripts in sdcard folders, ready to be packaged, but doing this manually all the time is frustrating.
I don't think busybox has a zip command for some reason, gzip/gunzip aren't the same thing. Since you're using SL4A, there may be a way to do it with python or perl or something.
Thanks, fubaya, and good call. I found this which I was able to successfully use:
How do I zip the contents of a folder using python
byrong said:
ZipThemer still creates flashable zip packages using the old amend scripting, but I am using new CWM that requires edify scripting. The developer is aware of this change, but hasn't yet updated ZipThemer.
Click to expand...
Click to collapse
ZipThemer 1.8 was released today with support for Edify scripting. See the ZipThemer User Manual for more information.
Ken

AutoMod [Modding Tool] [Script] [Linux/OSX]

AutoMod BETA 1.6 by MAD Industries
-----------------------------------------------------------------------------------------------------------------------------------
First off, this is not another APK Manager, this is also not Auto APK Tool. These two tools focus on the decompiling and recompiling of APK and jar files. AutoMod intends to bring a new paradigm to modding. That is, there are mods and there are roms. AutoMod makes them friendly with eachother. APKs are handled internally by the script.
I wrote this tool because as a developer who was using APK Manager, I ran into several obstacles along the way. One of them was that I liked to be able to take requests from users and personalize the mod to their tastes. Unless I was impeccable with my folder organization, it very quickly got out of hand with people asking for personalizations based on other personalizations. I would find myself decompiling a version I made the day before so I could remember what was in it and create yet another version on top of it. All this back and forth and I would end up with a mess of recompiled, decompiled, original, custom, extracted, etc files all over the place taking unnecessary HD space. On top of that, every step of the way required user input in the form of a yes/no prompt or selected a menu option for decompiling/recompiling/keep folders/signing/etc. And then I would manually create a flashable zip file for each version. AutoMod solves many of this issues in it's current BETA state. When it is finished, it will have solved all of them.
Features for End-Users:
Mods are dynamically applied to your ROM (this allows mods to stay up-to-date with the ROM without original developer support)
Mods often work across multiple similar ROMs (easy porting)
Mods are stored in what I call "opensource" format which means it is very easy to dig into the Mod package and change things to your personal preferences with very little knowledge modding
Only the modified files within the apk are stored in a mod package. This greatly reduces filesize
AutoMod encourages backups at every major step in the process
Backups are dynamic, meaning it will only backup the files which are modified
Backups are automatically saved as a flashable zip file so you can have it ready if a mod does not successfully integrate
AutoMod always keeps itself up-to-date with the latest features
Distribution of AutoMod requires only the script itself
AutoMod has the ability to accept a ROM Install file or an actual device as a base for creating a flashable zip file out of any mod package
Supported devices can have mods applied instantly and automatically over adb
Features for Developers
Since mod packages only contain changed files, you no longer have to hunt through hundreds of files to find a single png (such as when creating five different colored versions of a theme)
Easy packaging of mods for redistribution for this tool as well as update.zip format
AutoMod can "install" multiple ROMs into it's system so you can make a mod once, and then distrubute it for several ROMs at the same time
If you run nightly builds of your own ROM, AutoMod will soon include a scriptable feature which will allow you to release nightly themes, mods, etc with no extra effort
Much of the developer features are yet to come (such as quick prototyping of mods and parallel device/ROM support)
---------------------------------------------------------------------------------------------------------------------------------------
Tutorial written by mybook4 on post #16 (be sure to thank him)
---------------------------------------------------------------------------------------------------------------------------------------
1) Download automod.sh script and place it into an appropriate directory (I used one called AutoModTest)
2) Download the ROM Install zips you would like
3) Create your mod package (see below)
4) Run automod by typing “bash automod.sh” in a terminal
5) Select option 5 (Install a new ROM file into AutoMod), and follow the script's directions (copying your ROM zip, to the directory, not moving it or it will be overridden)
6) Select option 4 (Install a new mod package into Automod), and follow the script's directions (copying your mod zip, to the directory, not moving it or it will be overridden)
7) Select option 3 (Use a ROM Install zip + mod to create a flashable zip for another ROM/device), choosing the appropriate ROM and mod package.
8) Out came the zip! This makes things soooooooooooo much easier and more manageable!
Notes about automod mod packages:
1) A mod file is structured as a zip file with the extension .zip replaced with .mod (so as to separate it from flashable zips with the same name)
2) In the mod file is a directory with the name of the mod.
3) In the directory with the name of the mod is a directory tree leading to the files within the specific apk you would like to modify. For example, in the ICSBlueFull.mod file, the directory tree is as follows: ICSBlueFull, system, app, SystemUI (the apk being modified), res, directories with modified files (images, xml files, etc).
4) Just to be safe (and to match the ICSBlueFull mod supplied), I set permissions on all folders in my mod to 755 and all files to 644 (if these numbers don't mean much to you, open a terminal and type “man chmod”)
5) There is a command to package mods you have made into .mod files. This can be found in the developer menu. (option 11)
6) Spaces in file name are currently not handled very well. Try and name your mods accordingly.
---------------------------------------------------
How To Create A Mod
click to enlarge
---------------------------------------------------
Download the script here: http://cl.ly/code/463B1C3B123i
Note: Proper syntax is 'bash automod.sh'
Download an example mod here (for stock GS3 touchwiz based ROMs) [Fixed!]: https://github.com/downloads/MADindustries/automod/ICSBlueFull.mod
Original thread for this mod can be found here: http://forum.xda-developers.com/showthread.php?t=1775235
View the source/branch it here: https://github.com/MADindustries/automod (check this to see if using a 'forceupdate' would add features/functions)
awesome work dude!
invisiblek said:
awesome work dude!
Click to expand...
Click to collapse
Thanks. Btw you are in the credits on the script itself. (even if it was a couple binaries haha)
Wow. Great work. Can't wait to see more!
Ta very much indeed.
ALQI
Sent from my SCH-I535 using xda app-developers app
Nice job buddy..No Windows support?
This is amazing. +100000000000
Sent from my SCH-I535 using xda app-developers app
incubus26jc said:
Nice job buddy..No Windows support?
Click to expand...
Click to collapse
Not just yet. I'm on Mac personally which makes it not too difficult to see some Linux support as well. But Windows would be a completely new write from what i can tell. It will likely happen after this is out of beta unless a Windows dev feels like working with me on it. Obviously everything is open source and i would love to see a port pop up before i get around to it.
Sent from my Galaxy Nexus using Tapatalk 2
Very cool indeed.
Tried to download the example mod but appears it's down/not available.
Definitely want to give this a try.
Thanks for sharing
MAD Industries said:
Not just yet. I'm on Mac personally which makes it not too difficult to see some Linux support as well. But Windows would be a completely new write from what i can tell. It will likely happen after this is out of beta unless a Windows dev feels like working with me on it. Obviously everything is open source and i would love to see a port pop up before i get around to it.
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
It might work on windows with the right install of cygwin. I'd have to create a windows VM to test it out and I'm not all that familiar with cygwin anymore, any windows devs out there good with cygwin?
Sent from my SCH-I535 using xda app-developers app
alquimista said:
It might work on windows with the right install of cygwin. I'd have to create a windows VM to test it out and I'm not all that familiar with cygwin anymore, any windows devs out there good with cygwin?
Sent from my SCH-I535 using xda app-developers app
Click to expand...
Click to collapse
Oh yeah! I totally forgot about cygwin. Yeah that should do it. It has all dependencies packaged with it except java and wget/curl. And only java is really necessary if you kinda know your way around.
Nice! Another great tool for the community!
Just what ive been waiting for
---------- Post added at 08:40 PM ---------- Previous post was at 08:32 PM ----------
Looks like running with cygwin gives unknown operating system. Can't proceed after that.
clark44 said:
Just what ive been waiting for
---------- Post added at 08:40 PM ---------- Previous post was at 08:32 PM ----------
Looks like running with cygwin gives unknown operating system. Can't proceed after that.
Click to expand...
Click to collapse
Oh yeah, that will have to be changed. run the command 'echo $(uname)' in a cygwin terminal and let me know what it outputs. I'm guessing just cygwin. Then i'll update the script to support it.
Any chance anyone has the example mod posted in the first post available on another hosting provider? It's been down for 2 days
myn said:
Any chance anyone has the example mod posted in the first post available on another hosting provider? It's been down for 2 days
Click to expand...
Click to collapse
Fixed it! Sorry about that. I don't know what happened with cloud.
Automod works great! Thanks so much! Here are the steps I took to create a quick little test mod to enable a 40x38px navigation bar and have only the wifi, bluetooth, gps, rotation, sync status bar toggles for Beans R8. I'm on Beans R3.1, so I didn't get a chance to test the zip in CWM.
1) Download automod.sh script and place it into an appropriate directory (I used one called AutoModTest)
2) Download the ROM Install zips you would like
3) Create your mod package (see below)
4) Run automod by typing “bash automod.sh” in a terminal
5) Select option 5 (Install a new ROM file into AutoMod), and follow the script's directions (copying your ROM zip, to the directory, not moving it or it will be overridden)
6) Select option 4 (Install a new mod package into Automod), and follow the script's directions (copying your ROM zip, to the directory, not moving it or it will be overridden)
7) Select option 3 (Use a ROM Install zip + mod to create a flashable zip for another ROM/device), choosing the appropriate ROM and mod package.
8) Out came the zip! This makes things soooooooooooo much easier and more manageable!
Notes about automod mod packages:
1) A mod file appears to be structured as a zip file with the extension .zip replaced with .mod
2) In the mod file is a directory with the name of the mod.
3) In the directory with the name of the mod is a directory tree leading to the files within the specific apk you would like to modify. For example, in the ICSBlueFull.mod file, the directory tree is as follows: ICSBlueFull, system, app, SystemUI (the apk being modified), res, directories with modified files (images, xml files, etc).
4) Just to be safe (and to match the ICSBlueFull mod supplied), I set permissions on all folders in my mod to 755 and all files to 644 (if these numbers don't mean much to you, open a terminal and type “man chmod”)
The 5StatusBarNavBar mod package for Beans R8
The CWM zip for the above mod package
MAD Industries said:
Oh yeah, that will have to be changed. run the command 'echo $(uname)' in a cygwin terminal and let me know what it outputs. I'm guessing just cygwin. Then i'll update the script to support it.
Click to expand...
Click to collapse
CYGWIN_NT-6.1-WOW64 (edit: uname -o will just return Cygwin)
Took a quick look at your script and I don't think it will too much of effort to offer cygwin support. Package manager by default will install bash, and curl/wget is available as well. You would need to install java naively on OS (it is accessible via your bash shell). Also to note don't think it will be required for your script based on my quick look, but you could always use the built in 'cygpath' command to convert windows<->unix paths if necessary.
Unfortunately only have a Windows box at work so can't spend to much time on but if no one gets to it I will take a stab later this week time permitting.
incubus26jc said:
Nice job buddy..No Windows support?
Click to expand...
Click to collapse
Linux is free and easy to dual boot. Nothing stopping you.
Or just run Linux from a VM. You can even forward the USB ports with Vitualbox.
mybook4 said:
Automod works great! Thanks so much! Here are the steps I took to create a quick little test mod to enable a 40x38px navigation bar and have only the wifi, bluetooth, gps, rotation, sync status bar toggles for Beans R8. I'm on Beans R3.1, so I didn't get a chance to test the zip in CWM.
1) Download automod.sh script and place it into an appropriate directory (I used one called AutoModTest)
2) Download the ROM Install zips you would like
3) Create your mod package (see below)
4) Run automod by typing “bash automod.sh” in a terminal
5) Select option 5 (Install a new ROM file into AutoMod), and follow the script's directions (copying your ROM zip, to the directory, not moving it or it will be overridden)
6) Select option 4 (Install a new mod package into Automod), and follow the script's directions (copying your ROM zip, to the directory, not moving it or it will be overridden)
7) Select option 3 (Use a ROM Install zip + mod to create a flashable zip for another ROM/device), choosing the appropriate ROM and mod package.
8) Out came the zip! This makes things soooooooooooo much easier and more manageable!
Notes about automod mod packages:
1) A mod file appears to be structured as a zip file with the extension .zip replaced with .mod
2) In the mod file is a directory with the name of the mod.
3) In the directory with the name of the mod is a directory tree leading to the files within the specific apk you would like to modify. For example, in the ICSBlueFull.mod file, the directory tree is as follows: ICSBlueFull, system, app, SystemUI (the apk being modified), res, directories with modified files (images, xml files, etc).
4) Just to be safe (and to match the ICSBlueFull mod supplied), I set permissions on all folders in my mod to 755 and all files to 644 (if these numbers don't mean much to you, open a terminal and type “man chmod”)
The 5StatusBarNavBar mod package for Beans R8
The CWM zip for the above mod package
Click to expand...
Click to collapse
Thank you so much for writing this! I am adding it to the OP. (let me know if you want me to take it down for some reason though)
Quick note, I think step 6 was supposed to be copy mod file to install directory? Also, a .mod file is exactly that; a zip file renamed to .mod. I did this to differentiate it from flashable zip files because the two would likely have the same name and it would cause confusion yet I still wanted to keep the .mod format easily modifiable/not proprietary. And one last thing, there is a hidden command called "packagemod" which can be used after you create your own mod to zip it up properly for distribution. It is entered at the main menu in place of choosing an option. Syntax: 'packagemod ICSBlueFull'.
lowg said:
CYGWIN_NT-6.1-WOW64 (edit: uname -o will just return Cygwin)
Took a quick look at your script and I don't think it will too much of effort to offer cygwin support. Package manager by default will install bash, and curl/wget is available as well. You would need to install java naively on OS (it is accessible via your bash shell). Also to note don't think it will be required for your script based on my quick look, but you could always use the built in 'cygpath' command to convert windows<->unix paths if necessary.
Unfortunately only have a Windows box at work so can't spend to much time on but if no one gets to it I will take a stab later this week time permitting.
Click to expand...
Click to collapse
Thanks for the tips. I have next to no experience with cygwin so this information is very helpful. I'll look into adding support to the next release.

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.

[Resolved] Help Creating a Flashable Zip for AOSP MMS (5.0)

Before the eye rolling starts, please note i've Googled and searched for a solution on XDA extensively, with very little help concerning creating a flashable Zip file for Lollipop. Most of the guides and results dealt with KK and lower...
I'm attempting to create a flashable zip for the modified version of the Lollipop AOSP MMS app (located here: https://www.androidfilehost.com/?fid=95832962473398790). I've done this in the past with Jellybean and KitKat, but this time the app, for whatever reason just simply won't flash. No errors come up in recovery, but upon reboot, the app won't be installed.
I've concluded that the reason the app won't flash is the way I have my flashable zip structured.... Or the Updater Script is written wrong.. I've had this problem in the past and rectified it by placing the corresponding META-INF file into the apk itself before placing it in a flashable zip, but this hasn't fixed the issue this time around. The apk in the link above installs itself into the following directory when installed using a file explorer:
Code:
/data/app/com.android.mms-1
If I place the modified apk into the same exact directory in a flashable zip (along with the META-INF folder). An example of what I've done can be downloaded Here, for those interested in dissecting the zip. The only difference is the apk loaded in that zip is the original apk that I know works, not my modified one, as it isn't complete yet.
For reference, I took a look at the CM12 Gallery flashable zip which installs itself in this directory:
Code:
/system/app/Gallery2
Please note that the apk decompiles and recompiles with no issue, so unless APKtool (newest version) screws something up without throwing an error, I doubt that's the issue.
Really need some guidance on this one. I'm excited to see what I can do with this MMS app as I have done in the past with the KK AOSP MMS application. Any help would be greatly appreciated.
Resolution:
I've constructed a perfectly functioning flashable zip (not the ones above) after a few more trial runs. The problem actually seems to be with Apktool not compiling or decompiling the apks correctly. Basically the problem is APKtool.

Categories

Resources