Sie müssen eine Möglichkeit finden, eine Bibliothek (SO-Datei) zu ändern, ohne eine Anwendung in Android 13 auf einem geAndroid

Forum für diejenigen, die für Android programmieren
Guest
 Sie müssen eine Möglichkeit finden, eine Bibliothek (SO-Datei) zu ändern, ohne eine Anwendung in Android 13 auf einem ge

Post by Guest »

Eine Anwendung in Android verfügt möglicherweise über zusätzliche native Bibliotheken, SO-Dateien im lib-Verzeichnis.
Für die Zwecke meines Projekts ist es unbedingt erforderlich, die SO-Datei einer bestimmten Anwendung überschreiben zu können die bereits auf dem Gerät installiert wurde.
Datei wie /data/app/~~hU4TMUlqGWmn_lDTOca2fQ==/com.rockstargames.gtasa_x-jYaHvUmlwiQpOdGiFYR-9Q==/lib/arm/libGTASA.so
Ich nicht Ich möchte das APK nicht neu kompilieren und erneut installieren. Brauchen Sie eine schnelle Möglichkeit, die SO-Datei zu ändern.
Ich habe so ein Batch-Skript:

Code: Select all

"adb.exe" shell "su -c 'rm %NATIVE_LIB_DIR%/libGTASA.so'"
"adb.exe" shell "su -c 'rm /data/local/tmp/update.so'"
"adb.exe" push -p "R:\Android plugin deployment solution\Android plugin deployment solution\bin\Release\deployment\GTA San Andreas\2.00\ANDROID_ARMEABI_V7A\modified_lib\libGTASA.so" "/data/local/tmp/update.so"
"adb.exe" shell "su -c 'chmod 555 /data/local/tmp/update.so'"
"adb.exe" shell "su -c 'chown system /data/local/tmp/update.so'"
"adb.exe" shell "su -c 'chown :system /data/local/tmp/update.so'"
"adb.exe" shell "su -c 'cp -p /data/local/tmp/update.so %NATIVE_LIB_DIR%/libGTASA.so'"
Früher funktionierte dies gut auf gerooteten Android 11.
Mit Android 13 wird jetzt eine Berechtigung verweigert, wenn die Datei nach „lib“ kopiert wird. Verzeichnis einer Anwendung.
Zu meiner Überraschung funktioniert es in einem Fall immer noch – wenn eine Anwendung bereits vor langer Zeit mit einer älteren Android-Version auf meinem Gerät installiert war. Nachdem mein System aktualisiert wurde (jetzt Android 13-Version), werden Anwendungen installiert, ohne dass die Möglichkeit besteht, ihre Dateien in /data/app/ zu ändern.
Getestet auf zwei Xiaomi-Telefonen, beide haben es Android 13, das gleiche Problem.

Code: Select all

R:\>for /F "delims=" %a in ('""adb.exe" ""shell dumpsys package com.rockstargames.gtasa_x ^| grep legacyNativeLibraryDir ^| cut -d'=' -f2-"') do @set NATIVE_LIB_DIR=%a/arm

R:\>"adb.exe" shell "su -c 'rm /data/app/~~hU4TMUlqGWmn_lDTOca2fQ==/com.rockstargames.gtasa_x-jYaHvUmlwiQpOdGiFYR-9Q==/lib/arm/libGTASA.so'"
rm: /data/app/~~hU4TMUlqGWmn_lDTOca2fQ==/com.rockstargames.gtasa_x-jYaHvUmlwiQpOdGiFYR-9Q==/lib/arm/libGTASA.so: No such file or directory

R:\>"adb.exe" shell "su -c 'rm /data/local/tmp/update.so'"

R:\>"adb.exe" push -p "R:\Android plugin deployment solution\Android plugin deployment solution\bin\Release\deployment\GTA San Andreas\2.00\ANDROID_ARMEABI_V7A\modified_lib\libGTASA.so" "/data/local/tmp/update.so"
R:\And...libGTASA.so pushed, 0 skipped. 118.3 MB/s (11707712 bytes in 0.094s)

R:\>"adb.exe" shell "su -c 'chmod 555 /data/local/tmp/update.so'"

R:\>"adb.exe" shell "su -c 'chown system /data/local/tmp/update.so'"

R:\>"adb.exe" shell "su -c 'chown :system /data/local/tmp/update.so'"

R:\>"adb.exe" shell "su -c 'cp -p /data/local/tmp/update.so /data/app/~~hU4TMUlqGWmn_lDTOca2fQ==/com.rockstargames.gtasa_x-jYaHvUmlwiQpOdGiFYR-9Q==/lib/arm/libGTASA.so'"
cp: /data/app/~~hU4TMUlqGWmn_lDTOca2fQ==/com.rockstargames.gtasa_x-jYaHvUmlwiQpOdGiFYR-9Q==/lib/arm/libGTASA.so: Permission denied
Ich bin bereit, alle Änderungen vorzunehmen, die zur Lösung des Problems erforderlich sind. Ich habe ein gerootetes Gerät.
Ich habe SELinux deaktiviert (setenforce 0). , aber es löst das Problem nicht.
Weiß jemand, was genau der Grund für diese „Berechtigung verweigert“ ist?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post