Bei der Installation einer Anwendung gibt Android ihr eine eindeutige UID, welche Datei(en) wird/werden verwendet, um die verwendeten UIDs zu verfolgen und wem sie gehören? Ich möchte die Anwendungs-UID zwangsweise ändern, um sicherzustellen, dass sie auf verschiedenen Geräten gleich sind.
Ich habe schon bei nachgefragt /data/system/packages.xml
. Aber während das Anwendungsberechtigungen nach Paketnamen enthält, wurde dort keine UID angezeigt.
Wenn es von der Android-Version abhängt, für jede Version höher oder gleich 4.4.4 und Quelle zur Dokumentation, um es für zukünftige Versionen selbst herauszufinden.
Sie haben die richtige Antwort bereits verpasst.
Die UIDs werden direkt in gespeichert /data/system/packages.xml
, obwohl eine einfacher zu interpretierende Version mit weniger Informationen unter verfügbar ist packages.list
.
Hier ist eine Beispielzeile für den Inhalt (nach rechts scrollen)
<package name=" 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" >
Sie sehen, es gibt ein userId
XML-Attribut. Dies ist genau die UID, nach der Sie fragen.
Außerdem userId
kann durch ersetzt werden, sharedUserId
wenn eine App ihre UID mit einer anderen teilt. Like (auch nach rechts scrollen)
<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" >
Natürlich willst du das nicht so lange durchmachen , packages.xml
also solltest du dir vielleicht mal anschauenpackages.list
jackpal.androidterm 10001 0 /data/data/jackpal.androidterm default 3003,1028,1015
Sehr direkt, nicht wahr? Das 2. Feld mit Leerzeichen ist genau die UID und es ist die gleiche wie die in packages.xml
. Nicht ändern packages.list
. Alle nicht übereinstimmenden Datensätze in packages.list
werden von korrigiert packages.xml
.
Außerdem ist es möglich, die UID einer installierten App zu ändern, wenn sie keine gemeinsame UID hat. Einfach bearbeiten packages.xml
und neu starten, dann ist die neue UID sofort wirksam. Alte Daten werden für die geänderte App gelöscht. Wenn Sie Daten behalten möchten, wenden Sie sich chown
rekursiv auf das Datenverzeichnis der App in /data/data
. Wenn die alten Daten einer App durch eine nicht übereinstimmende UID gelöscht werden, werden entsprechende Informationen unter angezeigt /data/system/uiderrors.txt
. So was:
01.01.1970 00:00: UID des Pakets jackpal.androidterm wurde von 0 auf 10001 geändert, alte Daten gelöscht.
Getestet auf Android von 4 bis 5. Ich denke, das gilt von Gingerbread bis Nougat.
xavier_fakerat
Sruly
Alex
Sruly
Alex