Ya ha fallado la respuesta correcta.
Los UIDs se almacenan justo en /data/system/packages.xml
aunque una versión más fácil de interpretar y con menos información está disponible en packages.list
.
Aquí hay una línea de ejemplo de lo que hay dentro (desplácese a la derecha)
<package name="[jackpal.androidterm](https://play.google.com/store/apps/details?id=jackpal.androidterm)" codePath="/data/app/jackpal.androidterm-1" nativeLibraryPath="/data/app/jackpal.androidterm-1/lib" primaryCpuAbi="armeabi" flags="572996" ft="1592b6fa088" it="153d4948841" ut="158ed133c1f" version="71" **userId="10001"**\>
Verás, hay un userId
Atributo XML. Este es exactamente el UID que está pidiendo.
Además, userId
puede ser sustituido por sharedUserId
si una aplicación comparte su UID con otra. Como (también desplazarse a la derecha)
<package name="com.android.providers.telephony" codePath="/system/app/TelephonyProvider" nativeLibraryPath="/system/app/TelephonyProvider/lib" primaryCpuAbi="arm64-v8a" flags="540165" ft="159d34468e8" it="4ba52c60" ut="159d34468e8" version="1" **sharedUserId="1001"**\>
Por supuesto que no quieres pasar por eso terriblemente largo packages.xml
Así que tal vez quiera echar un vistazo a packages.list
como
jackpal.androidterm 10001 0 /data/data/jackpal.androidterm default 3003,1028,1015
Muy recto, ¿no es así? El 2º campo delimitado con espacio es exactamente el UID y es el mismo que el de packages.xml
. No modificar packages.list
. Todos los registros no coincidentes en packages.list
se corregirá de packages.xml
.
También es posible cambiar el UID de una aplicación instalada si no tiene un UID compartido. Simplemente edite packages.xml
y reiniciar, entonces el nuevo UID tendrá efecto inmediatamente. Los datos antiguos se borrarán para la aplicación modificada. Si quiere conservar los datos, aplique chown
recursivamente en el directorio de datos de la aplicación en /data/data
. Si los datos antiguos de una aplicación se borran por coincidencia de UID, la información relacionada aparecerá en /data/system/uiderrors.txt
. Así:
1970/01/01 00:00: Package jackpal.androidterm uid has changed from 0 to 10001, old data erased.
Probado en Android del 4 al 5. Supongo que esto es aplicable desde Gingerbread hasta Nougat.