1 votes

Permission refusée lors de l'installation d'une application système avec SSH

J'ai le fichier APK d'une application que je veux installer comme application système via SSH sur des tablettes Android enracinées. Je suis capable d'installer cette application via ADB avec un script mais l'installation échoue lorsque je le fais via SSH. L'application SSH installée s'appelle QuickSSHd et je me connecte en tant que Root. Avec ADB, je suis connecté avec le compte shell que j'ai créé en tant que Root avec l'application su commandement.

Voici le script d'installation :

if [[ $EUID -ne 0 ]]; then
   echo ">> This script must be run as root."
   exit 1
fi

echo ">> Remounting /system in write mode..."
mount -o rw,remount /system

echo ">> Installing Manager..."
wget -P /system/app http://update.esmart.net/apk/Manager.apk
chmod 777 /system/app/Manager.apk
chown system:system /system/app/Manager.apk

echo ">> Removing smanager..."
rm /system/app/smanager*

echo ">> Remounting /system in read mode..."
mount -o ro,remount /system

echo ">> Starting Manager..."
sleep 2
am start -W -n ch.esmart.managerapp/.MainActivity

echo ">> Finished !"

L'icône de l'application ne s'affiche pas et am ne fonctionne pas.

Après avoir vérifié dans logcat :

$ logcat | grep Manager
W/zipro   ( 3308): Unable to open zip '/system/app/Manager.apk': Permission denied
D/asset   ( 3308): failed to open Zip archive '/system/app/Manager.apk'
W/PackageParser( 3308): Unable to read AndroidManifest.xml of /system/app/Manager.apk

J'ai également essayé le su dans SSH mais cela ne change rien.

Les permissions semblent bonnes :

$ stat /system/app/Manager.apk
  File: "/system/app/Manager.apk"
  Size: 370990      Blocks: 728        IO Block: 4096   regular file
Device: 13h/19d Inode: 1448        Links: 1    
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/  system)   Gid: ( 1000/  system)
Access: 2014-10-24 12:10:05.000000000
Modify: 2014-10-24 12:10:05.000000000
Change: 2014-10-24 12:10:05.000000000

Que signifie cette erreur ? Merci beaucoup !

1voto

didil Points 121

J'ai trouvé d'où vient le problème. Lorsque je veux changer les droits sur le fichier, l'installation a déjà commencé. Je ne sais pas exactement ce qui se passe pendant l'installation. J'ai donc téléchargé l'APK sur le système de fichiers racine, j'ai changé les droits et copié l'APK en /system/app avec le -p à l'argument cp pour conserver les permissions des fichiers sur la cible.

if [[ $EUID -ne 0 ]]; then
   echo ">> This script must be run as root."
   exit 1
fi

echo ">> Remounting /system in write mode..."
mount -o rw,remount /system

echo ">> Installing Manager..."
wget -P / http://update.esmart.net/apk/Manager.apk
chmod 777 /Manager.apk
chown system:system /Manager.apk
cp -p -f /Manager.apk /system/app

echo ">> Removing smanager..."
rm /system/app/smanager*

echo ">> Remounting /system in read mode..."
mount -o ro,remount /system

echo ">> Starting Manager..."
sleep 2
am start -W -n ch.esmart.managerapp/.MainActivity

echo ">> Finished !"

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X