Requisitos previos :
un dispositivo de tableta rooteado de China basado en Rockchip que ejecuta Android 6, parcheado para deshabilitar SystemUI
aplicación de desarrollo propio que declara la categoría LAUNCHER y está destinada a tomar el control total del dispositivo
¿Qué estoy tratando de lograr?
instale la aplicación como una aplicación del sistema para evitar el manejo de permisos SDK 23+
Qué he hecho hasta ahora:
(raíz)
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
¿Cuál es el problema?
Parece que el sistema no sabe que la aplicación existe: no se ejecuta en el arranque (que lo hace perfectamente cuando se instala como una aplicación normal) y no puedo iniciarla manualmente:
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.
¿Qué me estoy perdiendo?
Cambiar los permisos -rw-r--r--
y el propietario seguido root
del reinicio debería solucionar
Pero como OP señaló, los problemas de firma deben resolverse
Mover una aplicación de un espacio a otro en Marshmallow y superior casi siempre resultará en eso. La mejor manera de usar el cp
comando, después de eso, elimine la fuente. Una aplicación en data tiene sus propios permisos establecidos que persisten en el sistema y, aunque los cambie, dado que no hay una nueva instancia de creación de archivos, el sistema simplemente no se encarga de activar la preparación de la aplicación. la mejor manera es
cp /data/app/[package.name]-1/app-name.apk /system/app/[app-folder-name]/app-name.apk
Repita esto para las bibliotecas en la carpeta de la aplicación a la carpeta de la aplicación. La carpeta debe verse como:
APPNAME que contiene .apk y la carpeta LIB Carpeta LIB que contiene el tipo de lib como carpeta ARM Carpeta ARM con todas las bibliotecas, por ejemplo, libexample.so
establecer el permiso de todas las carpetas chmod 0755
y todos los archivos para el permisochmod 0644
Van a trabajar. Para hacer la vida más fácil, deje de usar los comandos de shell. Busque un administrador de archivos para simplificar su trabajo, pero siempre recuerde que está usando TWRP o Terminal en un dispositivo de arranque, siempre copie y elimine la fuente. Mover muchas ROM en realidad conducirá a eso
NOTA: La carpeta Oat en esa carpeta en /data/app/package.name/ no sirve. Dalvik creará su nuevo archivo classes.dex en /data/dalvik-cache al instalarlo como aplicación del sistema
maver1ck
DatosDino