Необходимо найти способ изменить библиотеку (SO-файл) без переустановки приложения в Android 13 на корневом устройстве. Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Необходимо найти способ изменить библиотеку (SO-файл) без переустановки приложения в Android 13 на корневом устройстве.

Сообщение Anonymous »

Приложение в Android может иметь дополнительные собственные библиотеки, файлы SO в каталоге lib.
Для целей моего проекта абсолютно необходимо иметь возможность перезаписать файл SO определенного приложения. который уже установлен на устройстве.
Файл, например /data/app/~~hU4TMUlqGWmn_lDTOca2fQ==/com.rockstargames.gtasa_x-jYaHvUmlwiQpOdGiFYR-9Q==/lib/arm/libGTASA.so
Я не знаю Я не хочу перекомпилировать APK и устанавливать его снова. Нужен быстрый способ изменить SO-файл.
У меня есть такой пакетный скрипт:

Код: Выделить всё

"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'"
Раньше это хорошо работало на Android 11 с root-доступом.
Теперь в Android 13 при копировании файла в «lib» отказано в разрешении. каталог приложения.
К моему удивлению, в одном случае он все еще работает — если установленное приложение имеет только схему подписи v1, а не другую схему подписи.
Проверено на двух телефонах Xiaomi, оба на Android. 13, та же проблема.

Код: Выделить всё

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
Я готов внести любые изменения, необходимые для решения проблемы, при наличии рутированного устройства. Я хочу изменить свою систему, если это необходимо.
У меня отключен SELinux (setenforce 0), но это не решает проблему.
Да кто-нибудь знает, в чем именно причина этого «Отказано в разрешении»?

Подробнее здесь: https://stackoverflow.com/questions/793 ... an-applica
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»