J'ai rooté mon Galaxy S3 déverrouillé (SGH-T999)
Maintenant, j'essaye de courir à adb root
partir de l' invite de commande Windows , cependant, j'obtiens une adbd cannot run as root in production builds
erreur. Donc, la toute première chose que j'ai vérifiée était de savoir si mon téléphone était vraiment rooté?
J'ai donc essayé ce qui suit:
Ouvrir l'invite de commande
$adb devices // lists my device
$adb shell //goes to shell
$su // opens a 'SuperSu' prompt on my phone and I 'Grant' permission
# // Before following the rooting instructions, I was getting 'no su command found' in the previous step. So, I believe my phone is ROOTED. **Correct me if I'm wrong.**
Cependant, quand je le fais adb root
, j'obtiens une adbd cannot run as root in production builds
erreur. Alors, j'ai pensé, je devrais peut-être faire des choses supplémentaires au-delà de ce que j'ai fait ci-dessus. J'ai essayé toutes les solutions dans les questions SO suivantes:
- Lancer un script en tant que root via ADB
- autorisation de remount adb refusée, mais capable d'accéder au super utilisateur dans le shell - Android
- Impossible d'exécuter 'adb root' sur un téléphone Android rooté
Aucun de ces éléments n'a fonctionné pour moi. Tout ce qu'ils font est de donner l'accès ROOT À L'INTÉRIEUR de SHELL. Je veux adb root
travailler pour pouvoir exécuter diverses commandes adb SANS entrer dans le shell.
Réponses:
Par conception, la
adb root
commande fonctionne uniquement dans les versions de développement (c'esteng
-à- dire etuserdebug
qui ontro.debuggable=1
par défaut). Donc, pour activer laadb root
commande sur votre appareil autrement enraciné , ajoutez simplement laro.debuggable=1
ligne à l'un des fichiers suivants:Si vous voulez
adb shell
commencerroot
par défaut, ajoutezro.secure=0
également.Vous pouvez également utiliser un
adbd
binaire modifié (qui ne vérifie pasro.debuggable
)Depuis https://android.googlesource.com/platform/system/core/+/master/adb/daemon/main.cpp
#if defined(ALLOW_ADBD_ROOT) // The properties that affect `adb root` and `adb unroot` are ro.secure and // ro.debuggable. In this context the names don't make the expected behavior // particularly obvious. // // ro.debuggable: // Allowed to become root, but not necessarily the default. Set to 1 on // eng and userdebug builds. // // ro.secure: // Drop privileges by default. Set to 1 on userdebug and user builds.
la source
Dans certaines ROM conviviales pour les développeurs, vous pouvez simplement activer l' accès racine dans Paramètres> Option développeur> Accès racine . Après cela
adb root
devient disponible. Malheureusement, cela ne fonctionne pas pour la plupart des ROM stockées sur le marché.la source
J'ai rencontré ce problème en essayant de rooter l'émulateur, j'ai découvert que c'était parce que j'exécutais l'émulateur Nexus 5x qui avait Google Play dessus. Création d'un émulateur différent qui n'a pas Google Play et
adb root
rootera l'appareil pour vous. J'espère que cela aide quelqu'un.la source
J'utilise pour entrer en mode su dans abd shell
shell adb "su"
la source
adb shell "su -c whoami"
J'ai un Samsung Galaxy Trend Plus (GT-S7580) enraciné.
L'exécution de 'adb root' me donne la même erreur 'adbd ne peut pas s'exécuter en tant que root dans les versions de production'.
Pour les appareils dotés d'options de développement -> Accès root, choisissez "ADB uniquement" pour fournir un accès adb root à l'appareil (comme suggéré par NgaNguyenDuy ).
Ensuite, essayez d'exécuter la commande selon la solution à Lancer un script en tant que root via ADB . Dans mon cas, je voulais juste exécuter la commande 'netcfg rndis0 dhcp', et je l'ai fait de cette façon:
adb shell "su -c netcfg rndis0 dhcp"
Veuillez vérifier si vous faites des erreurs en l'exécutant de cette façon.
Si cela ne fonctionne toujours pas, vérifiez si vous avez correctement rooté l'appareil. Si toujours pas de chance, essayez d'installer une ROM personnalisée telle que Cyanogen Mod pour que 'adb root' fonctionne.
la source
Vous devez remplacer le binaire adbd dans le dossier boot.img / sbin / par un qui est su capable. Vous devrez également apporter des modifications à default.prop.
Samsung semble rendre cela plus difficile que les autres fournisseurs. J'ai quelques binaires adbd que vous pouvez essayer, mais cela nécessitera la connaissance de la décompilation et de la recompilation du boot.img avec le nouveau binaire. De plus, si vous avez un bootloader verrouillé ... cela n'arrivera pas.
Chainfire a également une application qui accordera l'autorisation root adbd dans le Play Store: https://play.google.com/store/apps/details?id=eu.chainfire.adbd&hl=en
Enfin, si vous essayez d'écrire un script Windows avec des autorisations SU, vous pouvez faire cet achat en utilisant le style de commande suivant ... Cependant, vous devrez au moins accorder (au téléphone) les autorisations SU la première fois qu'il est exécuté. .
adb shell "su -c ls" <-list répertoire de travail avec les droits su. shell adb "su -c echo anytext> /data/test.file"
Ce ne sont que quelques exemples. Si vous indiquez précisément ce que vous essayez d'accomplir, je pourrai peut-être vous donner des conseils plus spécifiques
-scosler
la source
adbd
a un drapeau compilation / option pour activer l' accès root:ALLOW_ADBD_ROOT=1
.Jusqu'à Android 9: Si
adbd
sur votre appareil est compilé sans cet indicateur, il supprimera toujours les privilèges au démarrage et donc "adb root" n'aidera pas du tout. Je devais patcher les appelssetuid()
,setgid()
,setgroups()
et la capacité des gouttes de moi - même binaire pour obtenir une ADBD permanente sur mon enracinée lecteur ebook.Avec Android 10, cela a changé; lorsque le téléphone / la tablette est déverrouillé (
ro.boot.verifiedbootstate == "orange"
), le mode adb root est dans tous les cas possible.la source
Si vous avez vraiment besoin d'
ADB
exécuter en tant queroot
, le moyen le plus rapide et le plus simple est d'installer des ROM personnalisées Android et le plus populaire estCyanogenMod
qu'il a lesRoot Access
options dans le menu des options du développeur où vous pouvez choisir d'accorder un accès rootapps and ADB
. J'ai utilisé CM avant mais comme il n'était plus développé, j'ai essayé de chercher des solutions là-bas. Bien que CyanogenMod soit toujours une bonne alternative car il ne dispose pas de bloatware.Une alternative que j'ai découverte d'un ami consiste à utiliser une
adbd insecure
application que vous pouvez essayer ici: https://forum.xda-developers.com/showthread.php?t=1687590 . Dans mon cas, cela fonctionne parfaitement avec un noyau personnalisé Android, mais pas avec la ROM stock Android (Android vanilla uniquement). Vous pouvez également essayer d'autres alternatives comme la modificationboot.img
de la ROM Android.la source