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...
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/$$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
Wie einsetzen ?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
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.









Automatisch generierter Sicherheitshinweis



