Stamattina tra diverse distrazioni sono finalmente riuscita a creare cloni della app di #Firefox (Fennec, aka v68) per #Android, senza ricompilare da sorgente... cosa che ieri sera stavo per arrendermi a fare, ma ovviamente ho constatato che non funziona nulla, col build system loro e i sorci vecchissimi. Dopo non pochi tentativi con estrattori ed editor di #APK a non finire (mentre che stavo in realtà cercando di crackare un cloner di app molto pay to win, lol) scopro che Lucky Patcher ha una sua funzione di #clonazione. Perché non fare un tentativo allora? 🤥️
- Sul Rattoppatore apro l'APK, faccio
Rebuild
>Clone application
, e seleziono soloModify only AndroidManifest.xml
,Change sharedUserId
, eChange application name
, e lo lascio fare. E... l'APK emesso si installa e gira. 🤯️
Era davvero così semplice? Evidentemente si... ma, in primis il nome non è cambiato correttamente, e quindi non appare diverso in alcuni launcher... e poi l'icona rimane uguale, che è un po' un problema quando devi differenziare tra il clone e la app originale. Per sistemare queste rogne servono per forza altri strumenti, quelli che da soli non stavano funzionando, e allora:
- Uso
apktool d -r -s
per estrarre il nuovo APK senza decompilare niente (altrimenti poi la ricompilazione fallirà).
- Uso xml2axml per "deoffuscare" il manifest, fare queste modifiche, e poi "rioffuscarlo" (altrimenti l'APK non sarà valido):
- Cambio l'unica proprietà
android:label
tra le tante nel file che ancora riporta il nome passato della app. - Cancello tutti gli attributi XML che risultano vuoti (
coso=""
) (3 nel mio caso), e cancello i nodi a cui appartenevano se non hanno altra roba, altrimenti si incappa nel bug #3.
- Cambio l'unica proprietà
- Modifico a mano l'icona PNG più in alta risoluzione che ho trovato già nell'APK, poi la ricopio sovrascrivendo tutte le vecchie (si, anche quelle a più bassa risoluzione, non da problemi):
find -name ic_launcher.png -exec cp icona_nuova.png {} \;
.
- Riassemblo con
apktool b
, poi per firmare e allineare l'APK usando questo uber-apk-signer (è una manna dal cielo trovata stamattina, funziona e basta evitandomi i tremila cazzi altrimenti necessari).
Onestamente, non capisco perché modificare il nome del pacchetto con le stesse accortezze che per clonare tutte le app semplici vanno bene, in questo caso non basta e porta il browser a crashare... ma ho visto che il Fortunello cambia giusto qualcosina all'interno del codice Dalvik, shiftando lettere di poche parole scelte in base a non so che criterio, portandole semplicemente una lettera avanti come già fa per il nome del pacchetto. 🧮️