web-dev-qa-db-fra.com

shell adb "opération non autorisée" pour chaque commande

J'ai récemment effectué une réinitialisation d'usine de mon téléphone Android. Avant la réinitialisation, je pouvais installer des applications via adb install. Le téléphone n'était pas enraciné.

Après la réinitialisation d'usine, la plupart du temps, l'opération "Opération n'est pas autorisée" pour presque toutes les commandes de Shell adb (y compris celles qui n'existent pas):

$ install
install: permission denied
$ Push
push: permission denied
$ remount
remount: permission denied
$ su
su: permission denied
$ kmmsaldfmaldskfmlasdf
kmmsaldfmaldskfmlasdf: permission denied
$

La plupart des chemins sont illisibles pour moi (sauf pour/system/bin et/system/xbin):

$ echo $PATH
/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
$ ls /sbin
opendir failed, Permission denied
$ ls /vendor/bin
/vendor/bin: No such file or directory
$ ls /system/sbin/
/system/sbin/: No such file or directory

Si je lance adb root:

$ adb root
adbd cannot run as root in production builds

De ma recherche (qui m'a déjà pris beaucoup plus de temps que nécessaire), certains pointeurs sont à default.prop:

$ cat default.prop
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=1
ro.allow.mock.location=0
ro.debuggable=0
persist.service.adb.enable=1
$

Mais je n'ai pas d'accès en écriture à default.prop:

$ ls -l default.prop 
-rw-r--r-- root     root          118 1969-12-31 19:00 default.prop
$

Je semble aussi incapable de remonter. J'ai pu utiliser adb avec succès sur le périphérique non rooté, pourquoi tant de chagrin maintenant? Quelqu'un at-il rencontré ce problème? Mon propre téléphone est pratiquement inutilisable pour moi et, bien sûr, je ne peux faire aucun développement.

Essayer de remonter en tant que rw:

$ mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
/dev/stl9 /system rfs ro,relatime,vfat,log_off,check=no,gid/uid/rwx,iocharset=cp437 0 0
/dev/stl10 /cache rfs rw,nosuid,nodev,relatime,vfat,llw,gid/uid/rwx,iocharset=cp437 0 0
/dev/stl6 /mnt/.lfs j4fs rw,relatime 0 0
/dev/stl11 /data rfs rw,nosuid,nodev,relatime,vfat,llw,check=no,gid/uid/rwx,iocharset=cp437 0 0
$ mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /
mount: Operation not permitted

Mon téléphone est un Samsung Galaxy Y, ce qui pourrait être important

6
ealfonso

Vous devez exécuter des commandes telles que install à partir de la ligne de commande du PC:

C:\> adb install ...

au lieu de dans le shell adb. Si cela ne fonctionne pas, vous devrez peut-être exécuter

adb remount

et/ou redémarrez votre téléphone et/ou réinstallez le pilote du téléphone. Voir ce fil de discussion pour plus d’informations.

J'ai constaté que le chemin d'accès dans une session Shell adb peut contenir toutes sortes de répertoires inexistants. Je ne sais pas pourquoi, mais normalement ça ne gâche rien.

3
Ted Hopp

En supposant que vous n'ayez pas mis une nouvelle version d'Android sur votre téléphone, je suppose que votre téléphone n'est plus en mode développeur.

Aller aux paramètres. Faites défiler jusqu'à ce que vous voyez l'en-tête Système. En dessous, vous devriez voir plusieurs options. Si le développeur n'en fait pas partie, cliquez sur À propos du téléphone, puis faites défiler jusqu'à Numéro de construction. Cliquez sur le numéro de construction 7 fois. Cela devrait ramener le mode développeur.

1
Joe Malin

Essayez d’exécuter ces commandes à partir de la récupération. Les récupérations les plus récentes sont debuggable = 1 . Ensuite, décompilez le noyau et modifiez ro.debuggable = 0 en 1, ce qui vous permettra de remonter avec adb et de permettre à adb de fonctionner comme racine!

0
Ricky Divjakovski

Vos capacités utilisateur sont supprimées quelque part. Regardez le statut/proc // pour voir le masque de capacité.

0
skoperst

J'ai eu ce problème sans fin sur ma galaxie S3 Lorsque j'ai construit ma cuisine Android, j'ai trouvé un moyen de contourner ce problème.

  1. Root le périphérique si vous avez besoin d'autorisations élavated
  2. Décompressez la construction du noyau pour votre périphérique Dans le fichier default.prop et remplacez ces valeurs par les valeurs correspondantes.

ro.secure=0 ro.debuggable=1

  1. Compiler/remballer et flash
  2. Activer le débogage USB
0

Vous devez installer le SuperSU app à partir de Google Play. C’est la seule application super-utilisateur qui a correctement activé la fonctionnalité racine sur mon appareil (Galaxy S4).

Après cela, faites adb Shell et su. Si vous souhaitez extraire un fichier du répertoire/data , vous devez modifier les autorisations de ce fichier (à l'aide de chmod). Alors ça devrait marcher!

0
IgorGanapolsky

J'ai peut-être trouvé une solution pour vous

Récemment, j'ai mis à jour mon (racine) LGP500 de Froyo (Android 2.2.1) à Gingerbeard (Android 2.3.3). Après cela, je me suis retrouvé dans une situation assez semblable à la vôtre (la même chose, pour être honnête). J'ai perdu mes lettres de créance SU et j'ai désespérément essayé de trouver une solution à ce problème. J'étais tellement désespéré - j'ai même essayé la fameuse méthode Android 4.2 d'activer les paramètres du développeur, en tapotant mon pauvre appareil comme un fou depuis un certain temps. Alors ... même problème. En surfant sur le Web, j’ai découvert que le problème se trouvait en réalité dans la version de Gingerbeard et j’ai trouvé des solutions intéressantes. - i (finalement) avait mon périphérique 2.3.3 enraciné.

Notez que je ne partage ces choses qu’à des fins éducatives. Aucune infraction prise si vous briquez votre appareil par accident.


Avant de continuer, vérifiez si:

  • Vous avez correctement installé les pilotes ADB (sinon - affichera une erreur Avec le texte suivant: "impossible de trouver le périphérique en ligne, veuillez activer Le débogage USB!"; Solution - installer ou réinstaller les pilotes ADB N'oubliez pas que vous devez installer les pilotes avec votre périphérique connecté, MAIS le "débogage USB " Est désactivé.
  • Vous avez coché "Débogage USB" et "Autoriser les emplacements fictifs".

    Il est vivement conseillé de faire une sauvegarde pour éviter toute perte de données. (Exportez au moins vos contacts dans un fichier .vcf)

Si tout va bien:

  1. Installez UnlockRoot (vous pouvez trouver Unlock_Root_2.3.0.exe ici _) et l'exécuter.
  2. Exécutez "root" (vous pouvez ignorer tout sauf le bouton "root"). Choisissez votre appareil dans le menu contextuel.
  3. Redémarrez votre appareil (pour terminer l’installation du binaire SU - vous serez invité à l’application si vous souhaitez redémarrer, mais vous êtes libre de le faire vous-même via adb Shell) Et le tour est joué! votre appareil est enraciné, juste comme ça.
0
faustvault