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
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.
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.
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!
Vos capacités utilisateur sont supprimées quelque part. Regardez le statut/proc // pour voir le masque de capacité.
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.
ro.secure=0
ro.debuggable=1
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!
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.
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)