ROM Updater

 

ROM Updater is meant to be an universal, free tool to maintain your Android modified operating system up to date (for Android 2.0-update1 and up phones). It's repository-based, maintained by the ROM developer. It's able to recognize the mod name and version and will let you see the available updates, incremental or full download. It has a full support for the most common recovery actions (cache/data wipe, apply zip update, backup etc). To set the repository URL you just need a click (you can always set it manually).

Note: the development for this project has ceased.

How to create a repository

You simply need a web hosting which allows hotlinking (you may use dropbox too). The repository link is the root of it.

root/
root/main.json
root/{version_uri}/
root/{version_uri}/mod.json
root/{version_uri}/{update_files}.zip

main.json contains the name of the ROM mod and the version numbers, changelogs and folder of the versions (uri)

{version_uri} is the value set in main.json for each version.
{version_uri}/mod.json contains the names of the files in that folder (full update zip file and (optional) incremental update files)

You can download an example of a repository structure and the details of json files here.

How to embed the repository URL

If you want to include the ROM Updater into your own ROM, you may also want to set it to your repository, so that the end-user has just to click on "check for updates" without messing with the settings. To do this, simply add a new, custom property in the /system/build.prop file, something like this:

/system/build.prop, add:
ro.romupdater.repository=http://your.domain/repository/

How to setup the ROM build.prop file

In order to make your mod be compatible with ROM Updater you need to format build.prop in this way:

  • ro.build.display.id: the ROM name
  • ro.build.version.incremental: the ROM version (integer)
  • ro.product.model: should already be the right one, but in any case... the phone model (i.e. Nexus One)

 

How to build incremental upgrades

You can operate in two different ways, manually or automatically (with manual checks). In the former, you'll have to track every single change you make and write somewhere the file you've changed. Boring and long! Thanks to my incremental java application, you can skip all of this.

1.  download incremental.jar

2. unzip your previous (or any) and your newest update zip files in two different folders (i.e. old_rom and new_rom)

3. execute it like this: java -jar incremental.jar -o=old_rom -n=new_rom -w (see --help for more detailed options).

You'll have just in 3 easy steps a folder called "incremental" with all the files changed and modified. The updater-script is created from scratch, deleting files not in the ROM anymore (thus making the ROM clean all the times) and it even supports app2sd if present (edit the mount path if needed)! Being automatically created, please check it (and edit where you need) before zipping and signing. The installation of an updated busybox is not currently supported, nor is in the plans (just kick your ass and add all those symlinks if needed :) ).

You'll be surprised how much bandwidth you (and your users) are wasting downloading full updates only all the times!

Please donate!

If you're a mod developer who use my ROM Updater, or you're just enjoying my application as an end-user, please donate to me! I've made this application freeware and ad-free just because I like applications this way. But I spent hours to develop it, just for making your life easier.