Backup/Restore FlashROM Helper
Leute die sich mit Bash/Linux nicht auskennen, können ab HIER aufhören diesen Post zu lesen.
Da ich in letzter Zeit ziemlich viel ROM's ausprobiere und es mich angegurkt hat jeweils neu alle Apps aufzuspielen, die Kontakte neu zu setzen, und meine Konten einzurichten habe ich mir 2 Scripte geschrieben. Nicht zuletzt weil ich vor allen ROM's ein komplettes Wipe mache.
Update (22.3.2010) :: Konten/Sync Settings aus dem Script herausgenommen. Also nur noch Apps/SMS&MMS. Hab's nicht sauber hingekriegt :-/
Script1: backup_before_flash.sh
Dieses Script zieht per ADB die aktuell auf der app2sd Partition liegenden Apps (also die welche man manuell installiert hat und nicht zum ROM gehören). Dazu speichert es zu den jeweiligen Apps die Einstellungen (/data/data). Weiters werden die Kontakte gesichert, wie auch die Konten, etc...
Code:
#!/usr/bin/env bash
ADB_HOME="/home/$$USER$$/Apps/android/android-sdk-linux_x86-1.5_r3/tools"
ADB=$ADB_HOME/adb
HERO_HOME="/home/$$USER$$/Privat/Hero"
HERO_BAK=$HERO_HOME/BakDump
HERO_TMP=$HERO_HOME/Tmp
FILES=`$ADB shell ls /system/sd/app | tr '\r\n' ' '`
rm -rf $HERO_BAK/*
for FILE in $FILES
do
echo "processing $FILE..."
echo "$ADB pull /system/sd/app/$FILE $HERO_BAK"
$ADB pull /system/sd/app/$FILE $HERO_BAK
rm -rf $HERO_TMP/*
VENDOR=`echo $FILE | cut -d "." -f 1-3`
mkdir $HERO_TMP/$VENDOR
$ADB pull /data/data/$VENDOR $HERO_TMP/$VENDOR
tar -c -z -C $HERO_TMP -f $HERO_BAK/data_$VENDOR.tar.gz .
rm -rf $HERO_TMP/*
done
# Get SMS/MMS and CallHistory
$ADB pull /data/data/com.android.providers.telephony/databases $HERO_BAK
# Reboot into recovery
$ADB shell reboot recovery
Script Nummer 2, restore_after_flash.sh, macht im Prinzip genau das Gegenteil. Es sichert die Datenbanken/Settings zurück und reinstalliert die Apps auf das ROM.
Code:
#!/usr/bin/env bash
ADB_HOME="/home/toan/Apps/android/android-sdk-linux_x86-1.5_r3/tools"
ADB=$ADB_HOME/adb
HERO_HOME="/home/toan/Privat/Hero"
HERO_BAK=$HERO_HOME/BakDump
HERO_TMP=$HERO_HOME/Tmp
cd $HERO_BAK
FILES=`ls -1 *.apk | tr '\r\n' ' '`
for FILE in $FILES
do
echo "processing $FILE..."
$ADB install $FILE
rm -rf $HERO_TMP/*
VENDOR=`echo $FILE | cut -d "." -f 1-3`
tar -x -z -C $HERO_TMP -f data_$VENDOR.tar.gz
$ADB push $HERO_TMP /data/data
FILE_PERMS=`$ADB shell ls -l /data/data/ | grep -E "$VENDOR([^\.])" | awk '{print $2" "$6","}' | tr '\r\n' ' '`
IFS=$','
for LOOP in $FILE_PERMS
do
if [ $LOOP == " " ]
then
# Skip, no files pushed
continue
fi
DIR=`echo $LOOP | awk '{print $2}'`
OWNER=`echo $LOOP | awk '{print $1}'`
echo "Set Ownership of $DIR to $OWNER.$OWNER..."
$ADB shell find /data/data/$DIR -exec 'chown' "$OWNER.$OWNER" '{}' '\;'
done
rm -rf $HERO_TMP/*
done
# Push SMS/MMS
$ADB push $HERO_BAK/mmssms.db /data/data/com.android.providers.telephony/databases
$ADB shell chmod 666 /data/data/com.android.providers.telephony/databases/mmssms.db
$ADB shell reboot
Wie einsetzen ?
 | ACHTUNG! Die nachfolgenden Informationen sind nicht für AnfängerInnen geeignet. Bitte mach nur weiter, wenn du dir sicher bist, was du tust. Wir übernehmen keinerlei Verantwortung falls du dein Gerät oder Daten beschädigst. Die übernehmen wir sonst auch nicht, aber hier möchten wir explizit darauf hinweisen, dass es nicht ungefährlich ist, solche Eingriffe und Änderungen vorzunehmen. Fortfahren also auf eigene Gefahr! |
Wenn du das verstanden hast und dennoch weiterfahren möchtest, Doppelklicke bitte hier, um die die Informationen anzeigen.
|
- Nandroid/Bart Backup !!!! Ohne ein Backup nicht weiterlesen :)
- Das Script customizen (d.h. die Verzeichnisdefinitionen), + anlegen der lokalen Verzeichnisstruktur (1xTmp, 1xDump)
- Bei laufendem ROM ./backup_before_flash.sh ausführen. Das Phone sollte durchstarten und in den Recoverymode kommen. Lokal sollte man die Files haben. Diese evt. wegkopieren (cp -r dumpdir dump-rom-version)
- Nun alles wipen (ext, data, factory,...) und sich das gewünschte ROM flashen.
- Starten und normal einrichten (Google, Language, etc...)
- Nach dem PIN und dem Homescreen das script ./restore_after_flash.sh ausführen. Dies sollte alles wieder neu installieren und anschliessend das Phone durchstarten
- Nun sollten auf dem Hero wieder alle Apps so sein wie vor dem Wipe. Auch die SMS History sollte komplett sein.
Diese Scripte sind nur für Leute die wissen was sie tun und schon Erfahrung mit Linux/Bash Scripting haben !! Ich werde auch KEINEN Support/Hilfestellung zu (trivialen) Problemen/Fragen geben.
AW: Backup/Restore FlashROM Helper
Funktioniert (soviel ich es sehen kann)
- Apps INCLUSIVE Einstellungen/Speicherständen
- SMS
Bekannte Probleme / Dinge die noch nicht so tun wie ich will:
- Es kann teilweise vorkommen, das ein apk nicht installiert werden kann. Grund dafür habe ich keinen. Kann auch mit der SD Karte zusammenhängen (Busy, etc..). Die Meldung kommt, dass die Disk voll ist. Ist sie aber nicht. Und es kommt auch nicht immer vor :)
- Mail/Exchange Kontakte/etc... funktioniert nicht. Muss man (manuell) neu einrichten nach Wipe. Ich habe meine Kontakte auf nem Exchange-Server. Google-Kontakte geht auch. Würde ich sowieso jedem anempfehlen (die Kontakte Off-Phone zu pflegen).
Wenn jemand Korrekturen/Anmerkungen hat: Her damit :rolleyes:
Hinweise:
Funktioniert nur mit "Ausgangs"-ROM's die app2sd haben (also die apps in /system/sd/app liegen). Kann mittels 'adb shell ls -l /system/sd/app' kontrolliert werden