Android ROM Updater
ROM Updater
Table of Contents
- Devs: how to create a ROM Updater repository
- Devs: how to set the ROM repository URL directly in the ROM itself
- Devs: how to make ROM Updater recognize the ROM name and version
- Devs: how to build incremental updates
- Questions?
- Donate!
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).
ROM Updater on the Market:
Developers: how to create a ROM Updater repository
You simply need a web hosting (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.
Developers: how to set the ROM repository URL directly in the ROM itself
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/
Developers: how to make ROM Updater recognize the ROM name and version
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)
Version 1.7 and previous (old, DEPRECATED IN VERSION 1.8!): just set the build.prop's ro.build.display.id variable in this way: {ROM name}-v.{ROM version}, where {ROM name} must not include "-v." and {ROM version} must be an integer (yes, no float). For example: SuperMod-v.14
Developers: how to build incremental updates
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 PHP or java (new) script, you can skip all of this:
- download the tool from here (incremental.php): ROM-Updater/tools @ github (Windows users: delete the 1st line and execute like this: php incremental.php [OPTIONS]. All: you need php CLI installed)
ALTERNATIVELY: download incremental.jar and execute it like this: java -jar incremental.jar [OPTIONS] - unzip your previous (or any) and your newest update zip files in two different folders (i.e. old_rom and new_rom)
- execute the php file just like this: ./incremental.php -o old_rom -n new_rom -w
ALTERNATIVELY: 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!
Questions?
Don't hesitate to contact me at the support email (see the "Support" section).
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 (and I think I'll update it enhancing with new features or fixing bugs!).