giovedì 10 agosto 2023

Published agosto 10, 2023 by Django Faiola with 0 comment

Identificazione App in multiutente

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:

  1. id=0; name=Owner; flags=0x13 
  2. 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.mykiacom.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.manufacturer
HUAWEI

Lista degli utenti

adb shell pm list users
Users:
        UserInfo{0:Proprietario:13} running
        UserInfo{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.manufacturer
SAMSUNG

Samsung permette di clonare un'app con due tecnologie: "Dual Messenger" e "Secure Folder".

Lista degli utenti "Dual Messenger"

adb shell pm list users
Users:
        UserInfo{0:Pippo:13} running
        UserInfo{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 users
Users:
        UserInfo{0:Pippo:13} running
        UserInfo{150:Secure Folder:10021030} running

Entrambi, nome dell'utente "Secure Folder" e id 150 sono fissi.

LG Dual App

Lista degli utenti
adb shell pm list users
Users:
        UserInfo{0:Pippo:13} running
        UserInfo{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.

Riferimenti

0 comments:

Posta un commento