Tips & Tricks
=============
* 50-cm.sh contains only a reference implementation. You may customize the methods however you wish.
For example, 20-foobar.sh pre-backup can use a loop with conditionals to generate a dynamic backup list in
/tmp/foobar_file_list which is later printed by list_files() so the backup method will act on those files.
* Optional methods pre-backup, post-backup, pre-restore, or post-restore may be defined for special purposes.
* Inject new files into /tmp/addon.d/ prior to backuptool.sh backup if you want to act during the current CM upgrade.
* Delete files from /tmp/addon.d/ during post-restore if you want to permanently remove files from /system/addon.d/
Addons may use this approach to run a script only once.
* Scripts run in sort -n order. Prefix with numbers 00 through 99 if want to run in a particular order.
* You can have two separate scripts, implementing only backup in one, and only restore in the other with a different
number prefix of each. This allows even greater control the backup/restore order even further.
* You could use pre-backup to generate a one-time use backup script in /tmp/addon.d/ that deletes itself in
post-restore.
Patch Series
============
http://review.cyanogenmod.com/#change,13265
CyanogenMod/android_build
* edify generator
http://review.cyanogenmod.com/#change,13266
CyanogenMod/android_system_core
* permissions on /system/addon.d
http://review.cyanogenmod.com/#change,13267
CyanogenMod/android_vendor_cm
* 50-cm.sh reference backup script
* modular backuptool.sh
* support backuptool.functions used by /system/addon.d/*.sh scripts
Change-Id: Ifd5eaf9dcfd68d92e5043c21d1bae1dc0ad54860
Scheme for labeling date-encoded builds that aren't technically NIGHTLIES.
Also includes CM_EXTRAVERSION appendage to add additional designations to
SNAPSHOT builds.
At present, when running a busybox shell ("busybox sh") from mksh
(/system/bin/sh), one gets the following message before every command line:
sh: precmd: Permission denied
This is due to mkshrc exporting a PS1 which depends on a mkshrc defined
function, "precmd". Since "busybox sh" does not source mkshrc, it does not
have this function defined, resulting in the above error.
By not exporting PS1, "busybox sh" uses its own reasonable default. mksh
subshells continue to work as usual, since they (re)source /etc/mkshrc
anyways.
Change-Id: Ic9182e42aa033e811300d9e6e8d6d3f43e14e58f