Предпосылки :
китайский планшет на базе Rockchip с root-правами под управлением Android 6, исправленный для отключения SystemUI
приложение собственной разработки, объявляющее категорию LAUNCHER и предназначенное для полного управления устройством
Чего я пытаюсь достичь:
установите приложение как системное приложение, чтобы избежать обработки разрешений SDK 23+
Что я сделал до сих пор:
(корень)
ls /data/app/my.package.name-1
base.apk
lib
oat
mount -o rw,remount /system
mv /data/app/my.package.name-1 /system/priv-app/AppName
ls -la /system/priv-app/AppName
-rw-r--r-- system system 2464934 2017-12-08 11:32 base.apk
drwxr-xr-x system system 2017-12-08 11:32 lib
drwxrwx--x system install 2017-12-08 11:32 oat
reboot
В чем проблема?
Похоже, система не знает, что приложение существует: оно не запускается при загрузке (что отлично работает при установке как обычное приложение), и я не могу запустить его вручную:
root@rk312x:/ # am start -n my.package.name/.ui.MainActivity
Starting: Intent { cmp=my.package.name/.ui.MainActivity }
Error type 3
Error: Activity class {my.package.name/my.package.name.ui.MainActivity} does not exist.
Что мне не хватает?
Изменение разрешений -rw-r--r--
и владельца с root
последующей перезагрузкой должно исправить
Но, как указал ОП, необходимо решить проблемы с подписью.
Перемещение приложения из одного места в другое на Marshmallow и выше почти всегда приводит к этому. Лучше всего использовать cp
команду, после чего удалить источник. Приложение в данных имеет свои собственные установленные разрешения, которые сохраняются в системе, и даже если вы измените их, поскольку нет нового экземпляра создания файла, система просто не позаботится о том, чтобы инициировать подготовку приложения. Лучший способ
cp /data/app/[package.name]-1/app-name.apk /system/app/[app-folder-name]/app-name.apk
Повторите это для библиотек в папке приложения в папку приложения. Папка должна выглядеть так:
APPNAME, содержащая .apk и папку LIB Папка LIB, содержащая тип библиотеки, например, папку ARM Папка ARM со всеми библиотеками, например, libexample.so
установить разрешение для всех папок chmod 0755
и для всех файловchmod 0644
Они будут работать. Чтобы облегчить жизнь, перестаньте использовать команды оболочки. Ищите файловый менеджер, чтобы упростить вашу работу, но всегда помните, что вы используете TWRP или терминал на загрузочном устройстве, всегда копируйте и удаляйте источник. Переход на многие ПЗУ на самом деле приведет к этому
ПРИМЕЧАНИЕ. Папка овса в этой папке по адресу /data/app/package.name/ бесполезна. Dalvik создаст новый class.dex в /data/dalvik-cache при установке в качестве системного приложения.
Maver1ck
ДатаДино