Introduzione
Nel post APK Downgrade Manuale - Parte 1 è stata mostrata la procedura su come eseguire il downgrade delle applicazioni di terze parti nel caso di singolo package installato sul dispositivo. Come procedere nel caso in cui il package è diviso in più file?
Procedura manuale del downgrade (Bundle/Split)
Dal mio vecchio smartphone (la mia cavia) con Android Nougat proviamo a scalare l'applicazione Deliveroo: consegna di cibo che so per certo è un pacchetto diviso. Vecchia versione utilizzata 2.54.0 precedentemente scaricata e salvata sul computer con il nome del file "com.deliveroo.orderapp.old.apk".
Eseguire il prompt dei comandi.
Lista dei package installati di terze parti
adb shell pm list package -3package:pedometer.steptracker.calorieburner.stepcounterpackage:com.shazam.androidpackage:com.whatsapppackage:fr.vintedpackage:uk.co.novaware.telepass.androidpackage:com.deliveroo.orderapppackage:com.instagram.androidpackage:com.twitter.androidpackage:io.yuka.androidpackage:com.zhiliaoapp.musicallypackage:com.topjohnwu.magiskpackage:com.glovopackage:com.wallapoppackage:com.snapchat.android
Lista path del package com.deliveroo.orderapp
adb shell pm path com.deliveroo.orderapp
package:/data/app/com.deliveroo.orderapp-2/base.apk
package:/data/app/com.deliveroo.orderapp-2/split_config.arm64_v8a.apk
package:/data/app/com.deliveroo.orderapp-2/split_config.it.apk
package:/data/app/com.deliveroo.orderapp-2/split_config.xxhdpi.apk
Copia dell'apk originale sulla workstation
adb pull -a /data/app/com.deliveroo.orderapp-2/base.apk
adb pull -a /data/app/com.deliveroo.orderapp-2/split_config.arm64_v8a.apk
adb pull -a /data/app/com.deliveroo.orderapp-2/split_config.it.apk
adb pull -a /data/app/com.deliveroo.orderapp-2/split_config.xxhdpi.apk
Se viene riscontrato un errore del tipo
adb: error: remote object '/data/app/com.deliveroo.orderapp/base.apk' does not exist
allora bisogna creare una copia dei file prima del pull nella cartella tmp.
adb shell cp /data/app/com.deliveroo.orderapp-2/*.apk /data/local/tmp/
adb pull /data/local/tmp/base.apk
adb pull /data/local/tmp/split_config.arm64_v8a.apk
adb pull /data/local/tmp/split_config.it.apk
adb pull /data/local/tmp/split_config.xxhdpi.apk
Disinstallazione dell'app originale dal dispositivo preservando i dati dell'utente
adb shell pm uninstall -k com.deliveroo.orderapp
Riavvio del dispositivo
adb reboot
Downgrade
adb push com.deliveroo.orderapp.old.apk /data/local/tmp/
adb shell pm install /data/local/tmp/com.deliveroo.orderapp.old.apk
adb shell rm /data/local/tmp/com.deliveroo.orderapp.old.apk
Backup
adb backup -f deliveroo.ab -apk -obb -keyvalue com.deliveroo.orderapp
Inserire la password per esempio "1234". Il backup può essere eseguito anche (consigliato) utilizzando direttamente l'utility di backup bu.
Ripristino dell'applicazione originale
Nel caso in cui la copia degli originali sulla workstation è stata eseguita direttamente senza l'ausilio della cartella tmp, ovvero solo tramite una serie di pull, bisogna creare una copia di questi sul dispositivo.
adb push base.apk /data/local/tmp/
adb push split_config.arm64_v8a.apk /data/local/tmp/adb push split_config.it.apk /data/local/tmp/adb push split_config.xxhdpi.apk /data/local/tmp/
Utilizzando i file originali precedentemente copiati nella cartella tmp, per ripristinare l'app originale bisogna creare un nuovo package di installazione come segue:
adb shell pm install-create -r
Success: created install session [800467548]
adb shell pm install-write 800467548 base.apk /data/local/tmp/base.apk
Success: streamed 29701113 bytes
adb shell pm install-write 800467548 split_config.arm64_v8a.apk /data/local/tmp/split_config.arm64_v8a.apk
Success: streamed 21107947 bytes
adb shell pm install-write 800467548 split_config.it.apk /data/local/tmp/split_config.it.apk
Success: streamed 147865 bytes
adb shell pm install-write 800467548 split_config.xxhdpi.apk /data/local/tmp/split_config.xxhdpi.apk
Success: streamed 418214 bytes
adb shell pm install-commit 800467548
Success
Android Backup (.ab)
Il file di backup .ab (Android Backup) è proprietario con magic numbers "ANDROID BACKUP", dati compressi con algoritmo deflate e cifrati con AES CBC se impostata la password di backup. Esistono vari tool per convertire il file .ab in .tar, uno di questi è Android Backup Extractor oppure con il tool integrato in dfAPKdngrader.
0 comments:
Posta un commento