Voraussetzungen :
ein verwurzeltes Rockchip-basiertes chinesisches Tablet-Gerät mit Android 6, gepatcht, um SystemUI zu deaktivieren
Eigenentwickelte App, die die LAUNCHER-Kategorie deklariert und die volle Kontrolle über das Gerät übernehmen soll
Was versuche ich zu erreichen:
Installieren Sie die App als System-App, um die Handhabung von SDK 23+-Berechtigungen zu vermeiden
Was habe ich bisher gemacht:
(Wurzel)
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
Was ist das Problem?
Es scheint, dass das System nicht weiß, dass die App existiert: Sie läuft nicht beim Booten (was sie perfekt macht, wenn sie als normale App installiert wird) und ich kann sie nicht manuell starten:
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.
Was vermisse ich?
Das Ändern der Berechtigungen auf -rw-r--r--
und des Eigentümers, root
gefolgt von einem Neustart, sollte das Problem beheben
Aber wie OP betonte, müssen Signaturprobleme gelöst werden
Das Verschieben einer Anwendung von einem Raum in einen anderen auf Marshmallow und höher führt fast immer dazu. Verwenden Sie am besten den cp
Befehl, danach löschen Sie die Quelle. Eine Anwendung bei Daten hat ihre eigenen festgelegten Berechtigungen, die für das System bestehen bleiben, und selbst wenn Sie sie ändern, kümmert sich das System nicht darum, die Vorbereitung der App auszulösen, da es keine neue Instanz der Dateierstellung gibt. Der beste Weg ist
cp /data/app/[package.name]-1/app-name.apk /system/app/[app-folder-name]/app-name.apk
Wiederholen Sie dies für die Bibliotheken im App-Ordner zum App-Ordner. Der Ordner sollte folgendermaßen aussehen:
APPNAME mit .apk und LIB-Ordner LIB-Ordner mit Bibliothekstyp wie ARM-Ordner ARM-Ordner mit allen Bibliotheken, zB libexample.so
Setzen Sie die Berechtigung aller Ordner auf chmod 0755
und alle Dateien auf Berechtigungchmod 0644
Sie werden arbeiten. Um das Leben einfacher zu machen, hören Sie auf, die Shell-Befehle zu verwenden. Suchen Sie nach einem Dateimanager, um Ihre Arbeit zu vereinfachen, aber denken Sie immer daran, dass Sie TWRP oder Terminal auf einem Startgerät verwenden, kopieren und löschen Sie immer die Quelle. Das Bewegen für viele ROMs wird tatsächlich dazu führen
HINWEIS: Der Oat- Ordner in diesem Ordner unter /data/app/package.name/ ist nutzlos. Dalvik erstellt seine neue Classes.dex unter /data/dalvik-cache bei der Installation als Systemanwendung
Maver1ck
DataDino