Еще один способ удаления предустановленных приложений, android 12
У меня телефон Vivo Y31 и производитель решил добавить vivo.uninstall.compatibility.not_adbUninstall в некоторые свои приложения, из-за чего их стало нельзя удалять через adb командой
pm uninstall -k --user 0
Выдается ошибка
Failure [DELETE_FAILED_USER_RESTRICTED]
Покопавшись в службах нашел интересную команду(на других телефонах номер может быть другим)
TRANSACTION_setSystemAppInstallState = 134
setSystemAppInstallState(String var1, boolean var2, int var3)
По логике тут сначала название пакета, 0/1 - состояние, а потом номер пользователя.
И с её помощью получилось удалить неудаляемый и неотключаемый Jovi
adb shell service call package 134 s16 com.vivo.hiboard i32 0 i32 0package - название службы, 134 - номер команды, s16 для строки, i32 для boolean и int
На выходе получил
Result: Parcel(00000000 00000001 '........')
Программа удалена!
Для получения номера команды для вашего телефона нужно декомпилировать JAR файл /system/framework/framework.jar и открыть файл IPackageManager.java
На телефоне я это смог сделать установив эмулятор консоли termux, в нем установил и обновил archlinux, далее там установил java (pacman -S jdk-openjdk). Скачал архив dex2jar, закинул его в папку termux вместе с framework.jar, а потом получил промежуточный файл fw
sh d2j-dex2jar.sh -f -o fw framework.jar
Его я закинул на сайт http://www.javadecompilers.com/ и там уже получил нужный код. (На телефоне не хватает памяти).