Introduzione
Nel precedente articolo Aggiungere un'app a dfAPKdngrader, è stata descritta la procedura per integrare un'app personalizzata non inclusa nell'elenco predefinito dei package del software. In questo nuovo articolo, invece, viene approfondito il metodo per aggiungere un'app che non incorpora il supporto multi-architettura all'interno del medesimo package, condizione che richiede una gestione separata dei file APK.
Esistono applicazioni, dove il package APK è distribuito per una specifica architettura, ad esempio ARMv7. Per installare l'app su un dispositivo con architettura a 32 bit Intel (x86) o MIPS32, è necessario scaricare l'APK compatibile con tali architetture.
Nel precedente articolo, non l'ho scritto, ma dfAPKdngrader supporta anche questa modalità, in quanto l'identificazione dell'app non è basata principalmente sul nome del package come per molti altri software (ad es. packageName=com.whatsapp).
Su diversi dispositivi con sistema Android 10 o versione successive, è possibile che sia abilitata esclusivamente l'esecuzione di codice a 64 bit; in questi casi il supporto a 32 bit è stato rimosso rendendo impossibile il downgrade dell'app con le vecchie architetture come ARMv7. Di conseguenza, avere entrambi i package è fondamentale, soprattutto per garantire la compatibilità con i dispositivi più moderni.
Per comprendere meglio quanto è stato detto, di seguito viene mostrato come personalizzare l'app del lettore multimediale Lark Player.
Lark Player
Questa applicazione rappresenta un caso d'uso, in quanto presenta APK distinti per ciascuna architettura supportata. Prima di procedere alla descrizione della configurazione, di seguito sono riportati i due blocchi (oggetti) del file apk.json relativi ai package per l'architettura ARMv7 (ABI armeabi-v7a) e ARMv8-A (ABI arm64-v8a).
file di configurazione apk.json:
{
"baseName": "com.dywx.larkplayer-v7a",
"packageName": "com.dywx.larkplayer",
"marketName": "Lark Player",
"category": "Music & Audio",
"versionCode": 22230104,
"versionName": "2.23.1",
"minSdk": 17,
"abiList": "armeabi-v7a",
"url": "1El6zoZD23k_Fbhaw5LAgIkmN_8aBbS7o",
"md5": "7c6650d968bbb229d1d9890261ec45e2"
},
{
"baseName": "com.dywx.larkplayer-v8a",
"packageName": "com.dywx.larkplayer",
"marketName": "Lark Player",
"category": "Music & Audio",
"versionCode": 22230107,
"versionName": "2.23.1",
"minSdk": 17,
"abiList": "arm64-v8a",
"url": "1JS1NnHI3G8oKNL4vFn-L8KFGrAlam8Yq",
"md5": "fb8c2d9235da0cac4515716b1b25f981"
}
La versione dell'app (versionName) è la stessa per entrambe le configurazioni, almeno in questo caso, la 2.23.1. Tuttavia, è possibile definire versioni distinte, limitatamente a una per ciascuna tipologia di architettura.
La chiave baseName rappresenta l'identificatore univoco dei pacchetti. In assenza di un valore esplicito, o se lasciato vuoto, è associato al valore della chiave packageName per l'identificazione dell'applicazione. In tutte le configurazioni presenti nel file apk.json, non è mai stata utilizzata. Tutti gli APK forniti sono prevalentemente multi-architettura come indicato dai valori definiti nella chiave abiList.
Per discriminare le due architetture della stessa app, sono stati definiti altrettanti identificatori (baseName): com.dywx.larkplayer-v7 per la l'architettura ARMv7 e com.dywx.larkplayer-v8 per l'architettura ARMv8-A. I due identificatori sono generici e devono essere ovviamente univoci. In questa configurazione è stata utilizzata la notazione "packageName-val". Per una Intel a 32 bit, ad esempio, com.dywx.larkplayer-i32 o com.dywx.larkplayer-x86.
Per questa app, nonostante versionName è 2.23.1 per entrambe le configurazioni, il versionCode è diverso: 22230104 e 22230107. Quindi fate molta attenzione a scrivere i valori appropriati.
Uno screenshot di questa nuova configurazione:
Volendo, è possibile assegnare a marketName un nome che consenta di capire a colpo d'occhio a quale versione è associato; ad esempio, Lark Player arm64-v8a o qualsivoglia altra denominazione.
ATTENZIONE: Non è stato ancora verificato, ma può accadere che un'app progettata per versioni di Android precedenti alla 10 o compatibile con istruzioni a 32 bit mostri, tra i pacchetti candidati al downgrade, entrambe le versioni. In tal caso, è consigliabile selezionare quella nativa anziché quella retrocompatibile.
In occasione di questo piccolo articolo, ho deciso di pubblicare anche la lista delle nuove app supportate.
Lo ripeto volentieri: se avete realizzato dei package di app non ancora presenti nell'elenco, contattatemi e li renderò disponibili a tutti!😄.
Ultima versione
Il software è proprietario (Freeware - closed source) e per l'uso commerciale considera una piccola donazione valida come autorizzazione implicita al suo utilizzo.
Elenco delle nuove app supportate
- NumBuster!
- LovePlanet
- Swiggy
- PayByPhone
- Domino's Pizza France
- Yemeksepeti
- Pull&Bear
- MyPertamina
- Pluto TV
- Bolt Driver (Taxify Driver)
- Yubo (Yellow)
- WEBTOON
- Mrsool
- Hollister
- Veepee
- Orbitz
- Trafi
- Muzz (muzmatch)
- 1km
- Shopee
- Wego
- Fever
- OpenTable
- Wattpad
- Tagged
- Cloud (Cloud Mail.Ru)
- willhaben
- OfferUp
- Beyond Menu
- Microsoft Outlook
- Lark Player