dfAPKdngrader come identifica le app in multiutente? e quelle in modalità clone con la tecnologia nativa?
La logica di base è molto semplice. In primo luogo chi sono gli utenti configurati sul dispositivo?
adb shell pm list users
Users:
UserInfo{0:Owner:13} running
UserInfo{10:New user:10}
in questo caso sono presenti 2 utenti:
- id=0; name=Owner; flags=0x13
- id=10; name=New user; flags=0x10
per ogni utente viene eseguito il comando per ottenere la lista di tutti i package installati:
adb shell pm list package -3 --user 0
package:com.whatsapp
package:fr.vinted
package:com.google.ar.core
package:com.rebelvox.voxer
package:it.subito
adb shell pm list package -3 --user 10
package:fr.vinted
package:com.kia.eu.mykia
package:com.wallapop
come è possibile notare il comando --user 10 mette in evidenza che i package com.kia.eu.mykia e com.wallapop sono stati installati solo per utente 10, mentre fr.vinted è presente su entrambi gli account.
dfAPKdngrader quindi associa a ogni package la lista degli id utenti.
Per quanto riguarda la tecnologia di clonazione nativa (Samsung Dual Messenger, Samsung Secure Folder, Huawei/Honor App Twin, Huawei PrivateSpace, Xiaomi Dual Apps, Oppo Clone Apps, Vivo App Clone, OnePlus Parallel Apps, Asus Twin Apps, LG Dual App, realme App Cloner, etc.) la questione si complica un pò e varie tecniche sono state implementate per cercare di identificare quella in uso e non per tutti i brand. dfAPKdngrader non è in grado di capire al 100% se l'utente è realmente un utente clone e l'identificazione è del tutto sperimentale.
Huawei/Honor App Twin
Sempre con la mia cavia Huawei Android 7 (Nougat), ho attivato la clonazione "App Gemella (App Twin)" di WhatsApp. Per poter identificare l'utente associato all'app gemella, in primo luogo dfAPKdngrader identifica il costruttore.
adb shell getprop ro.product.manufacturerHUAWEI
Lista degli utenti
adb shell pm list usersUsers:UserInfo{0:Proprietario:13} runningUserInfo{10:Gemella:4000010} running
Da test effettuati (non è sicuro al 100%), sembra che l'utente clone è sempre identificato con l'id 10. Il nome dell'utente è una stringa localizzata "Gemella" per l'italiano "App Twin" per l'inglese.
Come si può vedere il programma mostra il badge (giallo) per indicare che è un app in multiutente e il badge (lavanda) per l'app clonata.
Samsung
Identificazione del costruttore
adb shell getprop ro.product.manufacturerSAMSUNG
Samsung permette di clonare un'app con due tecnologie: "Dual Messenger" e "Secure Folder".
Lista degli utenti "Dual Messenger"
adb shell pm list usersUsers:UserInfo{0:Pippo:13} runningUserInfo{95:DUAL_APP:20000030} running
Il nome dell'utente è una stringa fissa "DUAL_APP", mentre per l'id è 95, variabile? Per i due dispositivi testati ho riscontrato sempre 95. Per ora l'identificazione Dual Messenger è basata solo sul nome fisso "DUAL_APP".
Lista degli utenti "Secure Folder"
adb shell pm list usersUsers:UserInfo{0:Pippo:13} runningUserInfo{150:Secure Folder:10021030} running
Entrambi, nome dell'utente "Secure Folder" e id 150 sono fissi.
LG Dual App
adb shell pm list usersUsers:UserInfo{0:Pippo:13} runningUserInfo{97:dual:1030} running
Da ricerche basate sul web, il nome dell'utente è fisso "dual" mentre l'id è variabile in un range 90..99. Valori più frequenti dell'id sono 97 e 98.
Tutto il resto...
Chi vuole dare un contributo per comprendere meglio l'identificazione delle app clonate native è libero di postare i suoi dati. Grazie in anticipo.
0 comments:
Posta un commento