Commit Graph

27 Commits

Author SHA1 Message Date
shuixx
732117171d strix 2025-07-14 01:42:42 +00:00
SkyMinus
821a9ddc31 Initial MinusOS Balsam
Signed-off-by: SkyMinus <minus_rav@qq.com>
2025-07-01 21:20:43 +08:00
basamaryan
db0e0203b1 LineageOS 23.0
Change-Id: Ib993e7d13e3e51e354a6e59fe6b2088b5e5af0de
2025-06-27 08:26:12 +01:00
Michael Bestas
f6a35bb6c3 backuptool: Only check against major version
Remove an unused version export while we are at it

Change-Id: Ib25dd9eb219db460478c887e7f420aad201d645e
2024-10-19 01:10:12 +02:00
Michael Bestas
1408de438a LineageOS 22.0
Change-Id: I49235781bcd8b9fbd82fd472182141166512d463
2024-10-19 01:10:10 +02:00
Michael Bestas
b7f28608e5 LineageOS 21.0
Change-Id: Ibb75018049d2a0461a2b2fdccb509347c0d9834b
2023-10-20 09:55:48 +01:00
TheHitMan7
f83ae43615 backuptool: Unmount v3 partitions during backup
Extracted file /tmp/install/bin/backuptool.functions
Extracted file /tmp/install/bin/backuptool.sh
Extracted 2 file(s)
about to run program [/tmp/install/bin/backuptool.sh] with 5 args
[libfs_mgr]Unmapped logical partition system
DM_DEV_REMOVE failed for [vendor]: Device or resource busy
Cannot unmap vendor before removing group qti_dynamic_partitions.
script aborted: assert failed: update_dynamic_partitions(package_extract_file(dynamic_partitions_op_list))
assert failed: update_dynamic_partitions(package_extract_file(dynamic_partitions_op_list))error: 25
Updater process ended with ERROR: 1
Failed to mount '/system_root' (No such file or directory)
I:Actual block device: '/dev/block/dm-0', current file system: 'ext4'

We can clearly see that after version 3 script is executed with
its specific functions. It cannot or don't unmount partitions for
successful OTA upgrade. Resulting broken installation, this also
affects ROM inbuilt OTA updater app.

Signed-off-by: TheHitMan7 <krtik.vrma@gmail.com>
Change-Id: Ic2d4e7809e8abd402c2a49188c73c83ea3b4e8df
2023-01-11 10:26:45 +01:00
Arian
504571afb7 Lineage 20.0
Change-Id: I49cf6e7d02ecc36c03b27f50d4b35a70510de6e9
2022-08-23 02:02:19 +03:00
Nolen Johnson
180be0af6b LineageOS 19.1
Change-Id: I52d4109d4e1bacdbc08a5e640dfcdfdd8d319bf3
2022-03-14 17:19:28 +01:00
Michael Bestas
e843a047cd Lineage 19.0
Change-Id: I406a755d475de4ca7f92f58164282c7a07a06743
2021-10-07 19:57:15 +02:00
Erik Jensen
31a8d98385 backuptool: Support tab-delimited fstab
Change-Id: Ib3fcde92d0c1ebb8754b11c577e4885d8dd02624
2021-09-04 14:30:36 +02:00
Alessandro Astone
02f0ab69db backuptool: Ensure dedicated partitions are not unused before mounting
* Ignore the block devices in case their mount points are symlinks.
  This is common on devices where maintainers have chosen not to use
  real partitions because of their size being too small to be useful

Also `continue` instead of `break`. Oops.

Change-Id: I3e27abe510219066ecacd81d099220ac8e119f9f
2021-04-07 23:08:20 +02:00
Alessandro Astone
b5f3a4a72d backuptool: Ensure to cleanup the environment on failure
Change-Id: I6f974a40b4f3f4a0a1f3a4b46bf8e0cfeb81c4ec
2021-03-28 18:33:11 +02:00
Alessandro Astone
f16993e63b backuptool: Correct supported partitions for addon.d v3
* The plan was to support odm & oem too, but it turned out
  unnecessarily complicated due to their symlink setup,
  while being most likely unused.
  The partitions were removed from the list of supported ones
  in a-only backuptool, but were forgotten in ab backuptool.

Change-Id: I58a01cdc3f5c4239048b204f3313f4bf697dd60a
2021-02-18 14:34:21 +01:00
Alessandro Astone
c63fa8441b backuptool: Support seamless backup and restore to extra partitions
For scripts declaring ADDOND_VERSION=3 automatically mount
vendor, product, system_ext and others (when they're dedicated partitions).

Also expose the get_output_path() function to get the path to where
a file is mounted in case it lives in a dedicated partition.

ab exapmles:
get_output_path "system/product/priv-app/MyApp.apk"  = "/postinstall/product/priv-app/MyApk.apk"
get_output_path "system/app/MySystemApp.apk"         = "/postinstall/system/app/MySystemApp.apk"

a-only examples:
get_output_path "/mnt/system/system/product/priv-app/MyApp.apk" = "/mnt/system/system/product/priv-app/MyApp.apk"

******************************************************************
Instead of cycling all scripts for each stage, run
pre-backup -> backup -> post-backup in quick succession
(and likewise for restore), to ensure backwards compatibility
with scripts that wrongly assumed their environment not to
change between steps.
This is needed because we want to undo any mounting done for V3
scripts when executing V2 scripts. If a V2 script did mounting in
pre-restore and expected things to still be mounted in restore,
we would break their (yes incorrect) assumption.

Change-Id: I73fbad6f45824fed99e4482128769435348588f5
2021-02-07 20:07:09 +01:00
Alessandro Astone
6245873019 backuptool_ab: Make tmp actually tmpfs
Change-Id: I668e0f24486197d762981bef4c9f2437c4fa9c14
2021-02-07 20:07:09 +01:00
Bruno Martins
e1df13eb4a Lineage 18.1 is here for Xmas
Change-Id: Ic7bd96c188eb97c53cf245f79c85cc0e0d14a094
2020-12-12 03:26:14 +01:00
Jan Altensen
dd29a4766a Lineage 18.0
Change-Id: Icda4887efd1a965530213f82fbbf8ae908843b05
2020-09-13 19:45:42 +02:00
z3DD3r
284ec83fee backuptool: Fix backup/restore functionality
Backup/restore functionality was broken in the
Ia1f4ae95c9e4dae4df844853e81c264bc838f177 change
because of incorrect check of the function's result.

check_prereq() function refactored to return 0 if
backuping/restoration is possible. Any work should be
performed only if check_prereq() succeeds.

Change-Id: Ic977dba675df58a228ef4b882b25beb66cc9d2c6
2020-03-04 20:32:58 +03:00
z3DD3r
fa8a442ba2 backuptool: Properly unmount system partition
For non AB devices system partition should be unmounted
if check_prereq function fails.

This patch also refactors backuptool a bit for AB devices
in order to look same as backuptool for non AB devices.

Change-Id: Ia1f4ae95c9e4dae4df844853e81c264bc838f177
2020-03-04 12:42:10 +03:00
Wang Han
e43d699cfe backuptool: Remove backup blacklist/whitelist
Change-Id: Ia89e6fa4c31377a429e0dfa912d0b61393696009
2020-03-03 16:12:08 +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
Rashed Abdel-Tawab
6326caafb8 Lineage 16.0
Change-Id: Id892a06aac619efaef9c76aea8ced19af49672a6
2018-08-10 19:37:27 +01:00
Bruno Martins
920f209fff backuptool_ab: Pick LineageOS properties from build.prop
* 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

Change-Id: Ib11670474641d6fd14a00f8421e9fe8d1879bbc2
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
Dan Pasanen
4a049b563c vendor: add custom backuptools and postinstall script for A/B OTAs
* A/B OTA devices wont run backuptools in recovery (because they don't
  go in to recovery to do an OTA). In these cases let's use a modified
  version to backup/restore from within android upon postinstall.

* Add backuptool_postinstall.sh which will be run prior to the normal
  postinstall script in order to backup/restore via addon.d scripts.

* This needs to be done in such a manner because we need /postinstall
  mounted rw instead of the ro with context= options which are used for
  the normal postinstall (dexopt) script.

Change-Id: I51511870634dd1ec5388adafddb446f95cc5a950
2018-06-22 16:09:56 +02:00