vr-25 / tarb Goto Github PK
View Code? Open in Web Editor NEWA backup solution for Android, with recovery mode support
License: GNU General Public License v3.0
A backup solution for Android, with recovery mode support
License: GNU General Public License v3.0
i solved the issue for my use case just commenting out lines 1052 and 1053 in tarb.sh, but i guess there could be a more elegant solution... :)
maybe saving the "self backup" only if $BKPDIR is unset..?
I am trying to migrate between a rooted Pixel 2 and Pixel 4 with Magisk installed.
adb push tarb-am64 /sdcard
adb shell
su
(grant access)sh /sdcard/tarb-arm64 -b .
adb pull /sdcard/.vr25/tarb
adb push tarv /sdcard/.vr25
sh /sdcard/tarb-arm64 -r
adb shell
su
(grant access)And it restored the applications but not their data, accounts etc.
title
Trying to run the build.sh and tarb.sh shell scripts fails due to how MacOS interprets sed command; requires backup file extension as first command.
% bash -x ./build.sh arm64
echo
set -eu
sh -n tarb.sh
TMPDIR=build
++ awk '/^#binaries.tgz.base64/ { print NR + 1; exit 0; }' tarb.sh
BIN_LINE=1142
offline=false
'[' .arm64 '!=' .o ']'
++ head -n1 CHANGELOG
ver='v2023.10.22 202310220'
echo 'v2023.10.22 202310220'
cut -d ' ' -f 2
sed -i '/^VERSION=/s/=.*/="v2023.10.22 202310220"/' tarb.sh
sed: 1: "tarb.sh": undefined label 'arb.sh'
At the example section, if patterns have to be matched, there should not be a dot behind the flags.
Would you consider adding incremental backup using things like rsync or restic?
Read me states there is recovery support, but does not seem to work
# /data/t -r com.android.vending
+ match -r -[br]*
+ eval case -r in -[br]*) return 0;; esac; false
+ return 0
+ exec
+ FLAGS=
+ flag C
+ match *C*
+ eval case *C* in \'\') return 0;; esac; false
+ false
+ echo ./cache
+ COMP_LEVEL=1
+ flag [0-9]
+ match *[0-9]*
+ eval case *[0-9]* in \'\') return 0;; esac; false
+ false
+ flag [nx]
+ match *[nx]*
+ eval case *[nx]* in \'\') return 0;; esac; false
+ false
+ match com.android.vending */*
+ eval case com.android.vending in */*) return 0;; esac; false
+ false
+ [ -n ]
+ FLAGS=ad
+ flag D
+ match ad *D*
+ eval case ad in *D*) return 0;; esac; false
+ false
+ flag M
+ match ad *M*
+ eval case ad in *M*) return 0;; esac; false
+ false
+ flag O
+ match ad *O*
+ eval case ad in *O*) return 0;; esac; false
+ false
+ :
+ ENCRYPT=false
+ [ -n ]
+ params=-r com.android.vending
+ shift
+ [ -z -r com.android.vending ]
+ [ -n com.android.vending ]
+ match com.android.vending -p=*
+ eval case com.android.vending in -p=*) return 0;; esac; false
+ false
+ shift
+ [ -n ]
+ set -f
+ echo -r com.android.vending
+ sed s/ -p=//
+ set -- -r com.android.vending
+ set +f
+ unset params
+ echo ./lib
/data/adb/magisk
/data/adb/magisk.db
Android/data/*/cache
com.google.android.gms.appid.xml
no_backup
+ exclude=
+ [ -z ]
+ unset exclude
+ [ -n /data/media/0/BACKUP/tarb ]
+ restore -r com.android.vending
+ local one=
+ local regex=
+ local x=v
+ flag c
+ match ad *c*
+ eval case ad in *c*) return 0;; esac; false
+ false
+ flag n
+ match ad *n*
+ eval case ad in *n*) return 0;; esac; false
+ false
+ lspkg -r com.android.vending
+ local b=true
+ local extra=
+ local i=
+ local j=
+ local line=
+ local n=true
+ local r=true
+ local regex=
+ local x=v
+ match -r -r*
+ eval case -r in -r*) return 0;; esac; false
+ return 0
+ match -r -*[nx]*
+ eval case -r in -*[nx]*) return 0;; esac; false
+ false
+ x=
+ match -r -*n*
+ eval case -r in -*n*) return 0;; esac; false
+ false
+ n=false
+ match -r -b*
+ eval case -r in -b*) return 0;; esac; false
+ false
+ b=false
+ match -r -*
+ eval case -r in -*) return 0;; esac; false
+ return 0
+ shift
+ false
+ echo com.android.vending
+ sed -n /+ /p
+ sed s/.*+ //; s/,/|/g; s/\$/ /g
+ extra=
+ extra=
+ extra=
+ echo com.android.vending
+ sed s/ + .*//; s/+ .*//; s/,/|/g; s/\$/ /g
+ regex=com.android.vending
+ true
+ grep -E com.android.vending
+ sed s|/$||; s|.*/|| ;/^_settings_.*/d; s/$/ linuxIsAwesome/
+ grep -v ^vmdl.*\.tmp$
+ ls -1d [app list redacted for privacy]
+ [ -z ]
+ false
+ flag a
+ match ad *a*
+ eval case ad in *a*) return 0;; esac; false
+ return 0
+ allow_apk_sideload 1 0
+ settings put secure install_non_market_apps 1
+ /system/bin/settings put secure install_non_market_apps 1
command hangs at the last stdout
Hi:
Thank you for this amazing tool.
I used this tool to backup all my apps in LineageOS 18.1 (Android 11) using the option "-badDeMOsx . -X *[cC]ache*." When I try to restore an app (rikka.appops) to Evolution X 6.3.1 (Android 12), I cannot boot into system next time after the restore.
Some experiments lead me to the file "/data/system/users/0/settings_ssaid.xml." If I backup the file before restore, and revert the changes tarb made to the file during the restore, I can boot into system next time.
I have attached the two /data/system/users/0/settings_ssaid.xml files before and after the restore, /dev/.vr25/tarb/ssaid and /dev/.vr25/tarb/log. Here is the link.
Thanks
When I run tarb -b
it backs up nothing.
When I run the full desired command:
tarb -badelms10 + $(pm list packages -3 | sed 's/^package://โ | tr '\n' ',') -p='<pwd>'
It seems to back up everything except external data and the apk:
com.android.chrome
data
data_de
data_ext
runtime_perms
<other packages>
settings globalsettings secure
settings system
settings lineage global
settings lineage secure
settings lineage system
/data/adb
In the actual backup folder no APK and external data backup can be found either.
My current system is
Thank you for this application. If I get this to work, it'll be my new backup tool of choice.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.