XpressAndy

How to create a flashable zip for CWM

10 posts in this topic

If I modify my framework-res.apk or any other files, how do I create flashable zip with cwm?

And while compiling the framework-res.apk with apk manager, it basically ask two questions:

Is this a system file (y/n)?

Do you want to include the files that were not changed by you (y/n)?

I guess answer for first one would be yes. What option to choose for second question?

Thanks :)

0

Share this post


Link to post
Share on other sites

To create the flashable cwm script you need to add the META-INF directory. To illustrate below, after copying the META-INF structure and the relevant binary 'update-binary', all is needed is, to create the script 'update-script' which will reside in the same place as the binary.

Suppose your working directory is like this


MyFlashableCWM/

    |

    +- META-INF/

    |     |

    |     +- com/

    |         |

    |         + google/

    |             |

    |             +- android/

    |                   |

    |                   + update-binary

    |                   |

    |                   + updater-script

    |

    +- system/

         |

         +- lib/

             |

             + modules/

Let's take the above as an example, and to go with the example, you want to add a file into the system/lib, this corresponds to the android filesystem used. So you could have 'etc' in the structure, 'usr' and so on. The real meat is in the updater-script that has some functions which you will have to dig up, I enclose an example of a script that flashes a boot.img and replaces the system/lib/modules directory also Here's an example of an updater-script:

ui_print("Welcome to MyFlashableCWM!");

mount("yaffs2", "MTD", "system", "/system");

delete_recursive("/system/lib/modules");

ui_print("cleaned /system/lib/modules");

package_extract_dir("system", "/system");


//... NEED TO REPLACE WITH WHATEVER YOU WANT TO DO HERE


unmount("/system");

ui_print("Please reboot!");

That script will print out a message via 'ui_print', the crucial aspect is the 'mount' command which can be a bit tricky, for data as in /data it would be this

mount("yaffs2", "MTD", "data" "/data");

The order of the mount is important, whatever gets mounted first, second and so on, would have to be unmounted in the reverse order, i.e. second mount, first mount.

Have a look in the CyanogenMod's repo, in there, you will see this directory bootable/recovery/edify, there's source in there that shows the instructions that are used for the 'updater-script'

:)

Edited by t0mm13b
1

Share this post


Link to post
Share on other sites

Thanks a lot mate for such a detailed response :)

I will try this at home and will let you know of the progress. :)

0

Share this post


Link to post
Share on other sites

Have a look in the CyanogenMod's repo, in there, you will see this directory bootable/recovery/edify, there's source in there that shows the instructions that are used for the 'updater-script'

..and you're telling this now, after browsing through the whole internet for some documentation :blink:

Thanks :)

0

Share this post


Link to post
Share on other sites

..and you're telling this now, after browsing through the whole internet for some documentation :blink:

Thanks :)

I'll dig around and see if I can find a useful linky to save you from browsing through the source... remember - the scripts that are used now are edify which is supported with clockworkmod 3.x.x and greater, the older clockworkmod 2.x.x.x uses amend scripting which is different in some respects...

:)

0

Share this post


Link to post
Share on other sites

Here's the direct linky to the source that I was referring to.

You may gain some insight from looking at the comments... uhmmm... I do remember posting about clockwork mod scripting here on modaco a while back...

0

Share this post


Link to post
Share on other sites

..and you're telling this now, after browsing through the whole internet for some documentation :blink:

Thanks :)

yes the documentation stinks, or more accurately, doesn't exist! its essentially grok the source or copy what others have done and hope it works.

try this too: https://github.com/k...ngerbread/edify

oddly enough there is plenty over on xda about amend scripting, but almost nothing up-to-date (edify).

here is a kind of tutorial i did, well more notes on how i made the libaudio zip a while back, but it also covers signing and where to find update-binary.

here i've uploaded a couple of old signed zips you can look at

Edited by sej7278
0

Share this post


Link to post
Share on other sites

I don't understand one thing.Why is no one explaining how to create/ get the update-binary.There is so little discussion about it on the net. Is update-binary file specific to each device/OS?  For the above example,from where do we get the update-binary file??

0

Share this post


Link to post
Share on other sites

Hey how do I fix error status7?....I know its the updater script bit can't realy pin point it

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

MoDaCo is part of the MoDaCo.network, © Paul O'Brien 2002-2016. MoDaCo uses IntelliTxt technology.