Existe-t-il un moyen de visualiser les numéros IMSI et ICCID de mes cartes SIM ? Je n'ai pas trouvé ce menu ni dans le menu "About-Status" ni ailleurs.
Réponse
Trop de publicités?Il existe des API disponibles que les applications (telles que este ) pour lire les informations sur la carte SIM. Vous recherchez une solution CLI (voir este , este y este ), nous pouvons obtenir IMSI et ICCID avec les commandes suivantes respectivement (jusqu'à Android 9) :
~$ service call iphonesubinfo 7
~$ service call iphonesubinfo 10
* Les codes dépendent de l'ordre des méthodes définies aquí qui peut différer selon les versions d'Android.
* Pour les appareils à double SIM, utilisez le code 8
y 11
à la place et ajouter i32 2
à la commande pour obtenir des informations sur le deuxième SIM.
Passez la sortie par les tuyaux suivants pour convertir la sortie hexadécimale en une chaîne de caractères de bonne apparence :
... | grep -oE '[0-9a-f]{8} ' | while read hex; do echo -ne "\u${hex:4:4}\u${hex:0:4}"; done; echo
Les applications d'émulation de terminal n'ont généralement pas la permission READ_PHONE_STATE
(bien que vous puissiez subventionner manuellement avec Root) qui est requis par les deux fonctions. Les commandes doivent donc être exécutées à partir de adb shell
.
Codes 7
/ 8
correspondent à [getSubscriberId](https://developer.android.com/reference/android/telephony/TelephonyManager.html#getSubscriberId()) y 10
/ 11
a [getSimSerialNumber](https://developer.android.com/reference/android/telephony/TelephonyManager#getSimSerialNumber()) . Cependant, les deux méthodes ont été supprimé pour une utilisation normale des applications sous Android 10. Seules les applications système avec READ_PRIVILEGED_PHONE_STATE
pourra obtenir ces informations. iphonesubinfo
ne peuvent pas être jetés avec dumpsys
soit. Le Root est donc la seule solution sur Android 10+.
RIL peut également enregistrer les informations relatives à l'opérateur/SIM pour logcat
lorsque l'état du SIM change. Avec l'accès Root, il est possible de lire la base de données de téléphonie (le composant du cadre d'application qui interface le RIL) et aussi la base de données du RIL lui-même (qui interface le modem). Sur mon appareil Qualcomm, le RILD stocke les informations suivantes /data/vendor/radio/qcril.db
y compris ICCID et MCC/MNC.
~# sqlite3 -line /data/user_de/0/com.android.providers.telephony/databases/telephony.db 'select icc_id,card_id,carrier_name,display_name,mcc,mnc from siminfo'
~# sqlite3 /data/vendor/radio/qcril.db 'select ICCID from qcril_manual_prov_table'
A partir d'Android 9, l'IMSI est également stocké dans /data/system/netpolicy.xml
de fixer des limites de données mobiles pour les ORM séparément.
~# grep -o 'subscriberId=[^ ]*' /data/system/netpolicy.xml
RELATION :