Commit Graph

66 Commits

Author SHA1 Message Date
Davide Garberi
6b83f943ad backuptool: Run check_{black, white}list with proper system path
* If any of these two function gets run on a recovery mounting system
   to /system, /system/addon.d won't exist while /system/system/addon.d will.
 * Run the functions with $S as argument to make this work correctly

Change-Id: I02e7b91429a9e74d28bdb77e56955dad97ca75ac
2020-02-03 14:47:59 +01:00
Davide Garberi
23d677b5de backuptool: Fix addon.d version check for A-only
* The path /postinstall exists only for A/B, causing:
   grep: /postinstall/tmp/addon.d/*sh: No such file or directory

Change-Id: Ia07b3029e949c3e08302457cd08798a4dde00ef6
2020-02-03 14:47:59 +01:00
Davide Garberi
e40c31887d prebuilt: backuptool: Implement dynamic system mount for A-only
* Dynamically mount system to the path chosen by the recovery through backuptool
* This can be helpful because of the fragmentation that will happen with system mount in recovery after Q

Change-Id: I2d1e775efcf87e33319bc7790d1e54bca72116d3
2020-01-10 19:15:42 +01:00
Michael Bestas
42020e23f5 Lineage 17.1
Change-Id: Iaf3b75e49677b616a19431da8087c338ee7eb8da
2020-01-03 02:03:00 +02:00
Rashed Abdel-Tawab
b6b3421188 Lineage 17.0
Change-Id: Ib166a6218d18cf192aa314477e4044892b068e97
2019-09-05 10:38:36 +02:00
LuK1337
57490e6120 lineage: Support system-as-root A-only backuptool
Change-Id: I8336e5ab3c9d03fae7426044066318b987653d99
2018-12-06 17:45:15 +01:00
Rashed Abdel-Tawab
6326caafb8 Lineage 16.0
Change-Id: Id892a06aac619efaef9c76aea8ced19af49672a6
2018-08-10 19:37:27 +01:00
Adrian DC
05ab72add7 backuptool: Resolve incompatible version grep syntax
* The grep errorlevel output was not properly used by the if,
    therefore allowing a device to upgrade with old addons
    instead of aborting the backuptool steps

 * The LineageOS versions properties were removed from the build.prop,
    which is resolved properly in commit:
    "lineage: Keep LineageOS versions properties in build.prop"
    Change-Id: I0060141c097b3d14c3710eee1e0caf7110634967

 * Introduced in the following commit:
    "backuptool: Take into account new location for system default props"
    Change-Id: I62046447876c2198a0c4f88a4f36f4723d417617

This reverts commit 1022cc7c50.
Change-Id: I7f5a3510f64f0ecabfe9d15b5dbc1a667b210eb8
Signed-off-by: Adrian DC <radian.dc@gmail.com>
2018-08-10 20:35:01 +02:00
Adrian DC
29fca646a6 backuptool: Revert "Temporarily render version check permissive"
This reverts commit fa279c980512c5d25de6bbd4f8d6397a2ae2b252.
Change-Id: Ib3e88ef3ff80bd466c9ec73edc8224713d331657
2018-08-10 20:35:01 +02:00
Dan Pasanen
524fe03bfb backuptool: introduce addon.d script versioning
* Since A/B addon.d scripts are going to need to do things in a
  specific way or things could go horribly wrong for a user, let's
  introduce versioning so that scripts can claim to be compatible.

* A script can denote it is compatible with addon.d version 2 by
  adding: "# ADDOND_VERSION=2" somewhere in its script.

* Only A/B will require version 2 scripts for now, and version 2
  scripts will still run on non-A/B. Additionally if a script does
  not explicitly denote its version, assume its version 1.

* Version 1: The same old scripts we've always used. We cannot assume
             these will all work with A/B backuptools.

* Version 2: Scripts that denote they are compatible with version 2
             must be aware of the fact that A/B devices will run this
             script for a rom, during a seamless update, mounted at
             /postinstall. The best way to ensure compatibility would
             be to use the pre-designated functions found in the
             backuptool[,_ab].functions scripts.

Change-Id: I5573018dabd21bb64c7c964e2081806072a75243
2018-06-22 16:24:09 +02:00
Adrian DC
9dde3d63e8 backuptool: Temporarily render version check permissive
* Due to both following commits, backuptool went permissive
    and lineage properties got lost from the system on devices
    that do not have BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED

    "backuptool: Take into account new location for system default props"
    Change-Id: I62046447876c2198a0c4f88a4f36f4723d417617

    "lineage: Move to Google's method of defining system default props"
    Change-Id: I6cb0e28a7599b010b389cc541015a37010a00f4b

 * Once the properties issue is properly resolved in the sources,
    a period of time is required for "most" of the users to upgrade
    their system with fixed lineage properties before we break addons
    by repairing the backuptool script globally

Change-Id: Iea8865ea9bb05eed56a8a0a7b95e3f04b01c4bae
2018-05-18 22:04:29 +02:00
Bruno Martins
1022cc7c50 backuptool: Take into account new location for system default props
* System default props defined using PRODUCT_SYSTEM_DEFAULT_PROPERTIES
   are stored into /system/etc/prop.default, so that's the location where
   ro.lineage.version prop needs to be checked now. Although, fallback
   to the old location to allow sucessful upgrades.

Change-Id: I62046447876c2198a0c4f88a4f36f4723d417617
2018-03-03 00:46:45 +00:00
Adrian DC
93256e4ac9 vendor: lineage: Upgrade to LineageOS 15.1
* Update backuptool versions
 * Update text references
 * Set version minor to 1

Change-Id: I30eea1f1cb01e2165311364cc62b589669bb1290
2017-12-07 01:36:18 +01:00
Luca Stefani
5c60e4fd24 lineage: Complete the rebrand
* TODO: Rebrand cmsdk when it's in a working state

Change-Id: I0d8d573f9e0032110ae3a0f54ebe11a877b83137
2017-08-23 17:33:22 +03:00
Gabriele M
4fe35097b3 fix check_blacklist function to work on wiped /system partition
If /system is empty, /tmp/addon.d/ will not exist, "*sh" won't be
expanded, md5sum will not generate any output and the variable $s
will be empty. Therefore grep, which will receive only one arg, will
start to read the standard input and never exit, causing the
installation to never end. Fix this checking whether we have files
to read or not.

Change-Id: I656eab42e54b3f81da8c5ac81374b9deddcf8484
2017-06-04 19:46:13 +00:00
Steve Kondik
2fd50c4369 Merge branch 'cm-14.0' of git://github.com/CyanogenMod/android_vendor_cm into HEAD 2016-10-26 17:08:11 -07:00
Michael Bestas
89450fb971 More 14.0 -> 14.1 changes
Change-Id: I38a2589e5743aac0d8b13799b3d79cb2dab8e5d6
2016-10-26 22:35:18 +03:00
Adrian DC
13512fb86f backuptool: /system/addon.d explicit creation
* Add the addon.d folder creation to preserve_addon_d
    before copying the files back to /system/addon.d

 * On CM based ROMs, the path exists for built elements,
    but on other AOSP-based ROMs where this script might
    be used, the folder might not be created on build and
    copy fails, breaking backuptool on second ROM update

Change-Id: I7438823b8d7ad0972649d2bf491d0f6fe423bc99
2016-10-26 02:30:46 -07:00
Adrian DC
9b4114ee47 vendor: cm: Updates for CM-14.0
* Fix the backuptool for the new version
 * Update text references

Change-Id: I3d557cc4eb5feb07ebbff372dae6d165d29d94ee
2016-09-03 20:31:52 +02:00
Tom Marshall
517e6915cc backuptool: Use cut instead of awk
recovery has removed busybox in favor of toybox, and toybox does not
currently implement awk.

Change-Id: I9d91f52020e8a7b5b02dce27f3d82e6bf0aa1811
2015-11-20 14:24:37 -08:00
Michael Bestas
eb83dba7ce Updates for cm-13.0
Change-Id: I6a0efff3bf6ea2e332cacd7cbb2f2b132b2c73dd
2015-10-07 21:15:52 +03:00
Andreas Schneider
9cfe968a73 backuptool: Add checks if it makes sense to execute commands
Change-Id: Ic83fc1168ac459b1bba5cef97d184ce2a9db4c68
2015-09-15 16:02:45 +03:00
Michael Bestas
6399c8be4b Updates for cm-12.1
Change-Id: I3eefaadce417ed3802f31bd62ee57a3b18561839
2015-04-01 05:30:52 +03:00
Tom Marshall
65aff66ecb cm: Put install tools in OUT/install
* This allows us to avoid modifying /system at install time.

Change-Id: I747551d7f38a3eef70ab64f32b6d4a4749c01012
2015-01-13 21:54:18 +00:00
Ricardo Cerqueira
49a30e7d17 Updates for CM12 2014-11-06 14:54:32 +00:00
Ricardo Cerqueira
50dda4c2a9 Updates for CM11
Change-Id: Icb527c5aefa0dd86cc91f42f4f691b5fdf7ead48
2013-11-05 15:26:20 +00:00
Ricardo Cerqueira
4f4c30b7a4 backuptool: Add support for cross-version whitelists
Change-Id: I415eb4d64d693a7e150656802be7f7c4a0e5ab8b
2013-08-26 04:39:47 +01:00
Ricardo Cerqueira
a690013c54 Underp the backuptool
Change-Id: I2510525701070d8c7e59c26693fb0fdb37453fb3
2013-07-27 01:54:17 +01:00
Ricardo Cerqueira
129989b172 backuptool: Disregard known bad backup scripts
Keep a blacklist of md5 sums for scripts known to cause issues, and
ignore them when installing new builds

Change-Id: I19a88b58194a32da5eb5fe278f2c5b9a145b57be
2012-12-19 01:16:17 +00:00
Chirayu Desai
700fc8f6c4 backuptool: only restore from same major.minor version
Change-Id: I63113fa9b3cbc6b0e1b3df75ef7dfb3160ee5062
2012-12-13 19:36:37 +05:30
Austen Dicken
0897504c1a remove mount/unmount capabilities from backuptool
backuptool should not be messing with whether /system is mounted
or not as it screws up the expectations of other scripts run
in the install process. instead the mounting/unmounting
functionality has been moved to ota_from_target_files

Change-Id: I0711afd517638e7d0a0c39369d3a776748245dd2
2012-07-17 14:50:27 -05:00
Ricardo Cerqueira
6edfe231cb backuptool: Update CM version
Change-Id: I646a6706faa35908bbca767a03f97172265390ce
2012-07-15 16:49:52 +01:00
eyeballer
018b5b62c4 backuptool.sh: Improve check for whether /system is mounted.
Fixes unable to flash an update.zip over a formatted /system

Change-Id: Ia163262585cb2ef414c6996837834c512d774243
2012-04-11 19:15:32 -04:00
Warren Togami
b1637c8e2b Modular backuptool.sh. Executes backup and restore methods defined in arbitrary /system/addon.d/*.sh scripts.
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
2012-03-08 20:40:36 -10:00
Steve Kondik
2824bf86ba Fix overridden packages in backuptool
- Fix Gallery typo
 - Add QuickSearchBox override

Change-Id: I7ac14e62eebf4289a55d2d1f065d34866cb67abd
2012-02-29 15:42:19 -08:00
Shawn Alty
5dda0a9e97 Ensure backup of voice search
Currently the tool only backs up the lib, but not the apk.
Seeing as how the market version of voice search is still not
up to date with the current release, it should still be backed
up with this script.

Change-Id: Ia130bb3e289fc3c2206a60ed0fcfd7dab816425d
2012-02-25 11:06:23 -06:00
Ricardo Cerqueira
2dc7045f2b backuptool: Deal with multiple files with the same name
Since the destination for all backed up files during an installation was
/tmp, all files sharing a name (like the full_model.bin files from
the various face detectors) ended up being restored as copies of
the last such file, effectively breaking the backup.
As a fix, when backing up files, use the entire original path to make
sure they're kept separate and restorable.

Change-Id: I399f7a9433a225871d97e0ecaeb051a90e68696b
2012-02-18 12:28:37 -08:00
Steve Kondik
f342837e69 Revert "Remove gallery from backuptool"
This reverts commit 538b4e9eb4.
2012-02-15 16:33:52 -08:00
Steve Kondik
538b4e9eb4 Remove gallery from backuptool
Change-Id: Ide65c6810955b2be9bc582559c7ba23a0f47cd26
2012-02-10 10:18:52 -08:00
Steve Kondik
f67c4aedf9 cm: Update backuptool for calendar
Change-Id: I882a9e108304649c491b539a7453e29098208b11
2011-12-30 11:31:01 -08:00
Steve Kondik
25d7ca1628 cm: Rename modversion to cm.version
Change-Id: I73da7816fec34e892ee54e1782a18ec1c42863b4
2011-12-29 15:29:34 -08:00
DvTonder
c61cb9242e Backuptool: Add missing google apps files
This commit adds additional gapps files missing from the backuptool

Change-Id: I2848d06c23083def8e92dbf3cf1c024883fb874d
2011-12-26 20:43:28 -05:00
DvTonder
147fb1b1cb backuptool: add missing CalendarProvider.apk
This fixes the broken Calendar Sync after restore

Change-Id: I2ea6c328f64d8fa3022238072cde36f6cb92105d
2011-12-26 11:36:16 -05:00
Steve Kondik
e0711e11f8 cm: Remove junk from backuptool
Change-Id: I1d290c0d685b032fd064cd1fc6b1474359c82c36
2011-12-20 12:51:49 -08:00
Tanguy Pruvot
763624824f Missing Maps.apk in backuptool.sh 2011-12-18 21:32:41 +01:00
Ricardo Cerqueira
e1f3738e7c CM9: initial CM vendor setup for Android 4 2011-11-27 20:15:37 +00:00
Tanguy Pruvot
1ef50758c3 Recovery BackupTool: add system mount check to prevent (u)mount if already mounted 2011-06-15 10:42:18 +02:00
PaulW
cfe876cefb Update backuptool.sh to correctly process force_backuptool flag/file.
This is regarding the following patch:
5cdb4ec653

The patch which was to allow custom_backup_list.txt to be maintained while flashing via ROMManager
WHILE the flag/file force_backuptool is set/present still has issues.  There are 2 reasons for this.

1) The flag is only checked during the first pass (backuptool.sh backup), as once /etc/force_backuptool
   is known to exist, all files are moved to /tmp/backupdir as designated, but when the script is
   ran again once /system has been wiped and updated, the file /etc/force_backuptool no longer exists
   as it was moved to /tmp/backupdir/force_backuptool, so the script fails as it is not checking that
   location.

2) When the backuptool.sh script is called, the above function (checking for force_backuptool) is called
   *before* the /system partition is mounted.  This therefor ignores the file regardless of whether it
   exists or not.  This is caused by check_installscript being called at the wrong point of the script.

There are therefor 2(two) main changes to this script to allow the force_backuptool override to work.
The first being within the main function of check_installscript, and the second being the location of
where check_installscript is called (ie, I moved it to below check_prereq call in the case statement,
as mounting is called before the check_prereq function checks if the ROM version is the same).

This affects *all* devices.

Change-Id: Ia7438f396eaa91b0723e56bb32ce98725e2b2025
2011-05-17 17:49:39 +01:00
blunden
05bd2e3cf0 Update backuptool.sh for new Gtalk app and lib
The new Gtalk app with video and voice chat from the Nexus S
OTA update is currently not backed up by the script because
Google renamed it Talk2.apk and added a new lib for it.

Change-Id: I2b0245d561584fa4d84e7d424653543d723a1ac6
2011-05-04 12:56:18 +02:00
blunden
b07bc18d52 Include the new Google Books app in backuptool.sh
This app is part of the new Gapps from the GRI40 N1 update.
Try it with these Gapps I packaged for lack of a better source.

Change-Id: Ib49fd13e0270dfa15d5e05843a6f11f2b2d6388e
http://bit.ly/hfgtL0
2011-03-02 02:29:01 +01:00