10
votes

Activer le débogage USB (sous Paramètres / Applications / Développement) Programmatiquement à partir d'une application

est-il possible d'activer le débogage USB (sous Paramètres / applications / Développement) à partir de mon application?

Je cherchais permission.write_setstings et http://developer.android.com/reference/andrroid/provider/settings .Ystem.html , Mais je n'ai rien trouvé approprié.


3 commentaires

Curiosité simple: pourquoi voudriez-vous faire cela dans une application comme vous avez besoin d'un pilote lorsque vous vous connectez à un ordinateur?


ce n'est pas un problème. J'écris une application de synchronisation (Java WebStart) qui fonctionnera sur un ensemble d'ordinateurs prédéfini. Les utilisateurs doivent pouvoir synchroniser le téléphone, mais lorsque je leur remettez les appareils, il est en mode sans débogage. Lorsque les utilisateurs veulent synchroniser, l'application doit activer / désactiver le mode de débogage, car ils ne quitteront jamais mon application. Mon application commence sur le démarrage et est définie à l'intention de la maison par défaut par défaut. (Contexte: Je suis regroupé l'application avec un appareil, que je loue ensuite à l'utilisateur). Mais les «stations de synchronisation» seront préconfigurées et ont des pilotes de périphérique, etc. déjà installés.


... De plus, je veux appeler adb du programme de synchronisation ... C'est pourquoi le montage USB simple n'est pas suffisant (ou nécessiterait des travaux de contournement supplémentaires)


6 Réponses :


5
votes

Ce n'est pas possible sans utiliser votre propre micrologiciel personnalisé qui accède à l'accès aux paramètres de sécurité. Voir le fil ici: http://groups.google.com/group/ Android-développeurs / Browse_frm / thread / 953C6F0EB0FA9bed #


0 commentaires

14
votes

Vous aurez besoin d'autorisations racines pour le faire à partir d'une application.

qui dit, il est possible pour activer adb en exécutant les commandes de terminal suivantes: xxx

Ce blog post donne un excellent exemple de comment exécuter ces commandes avec des autorisations escaladées via su .


1 commentaires

J'ai changé et marqué cette réponse comme solution correcte en faveur de ma propre réponse que j'ai donnée deux ans plus tôt. Peut-être que les choses ont changé au fil du temps, mais même cette réponse a aussi 7 ans. Je ne l'ai pas testé moi-même, mais étant donné les avances, je suppose que c'est correct.



6
votes

Premier: Votre application doit être une application système

Cette ligne de code peut aider:

paramètres.global.puTinint (getContentresolver (), global.aDb_enabled, 1);

Et vous avez besoin de cette autorisation:

Mais après avoir ajouté cette permission dans Manifest, vous obtiendrez cette erreur: autorisation est uniquement accordée aux applications système

Ce qui signifie votre application doit être une application système .


0 commentaires

5
votes

Vous pouvez activer les adb par programme en demandant wreck_secure_settings dans Manifest et l'accordant sur le shell d'adb:

Settings.Secure.putString(mContext.getContentResolver, Settings.Secure.ADB_ENABLED,"1");


1 commentaires

Merci pour l'indice, bon de savoir. Bon si j'avais ce drapeau il y a 8 ans.



0
votes

Si votre appareil dispose de racine et de niveau API> 17 pour Activer ADB: xxx

ou (dépend de la mise en oeuvre supplémentaire) xxx > Pour désactiver - changer le dernier argument de 1 à 0


0 commentaires

0
votes

Vous devez suivre ces 3 étapes

  1. dans le manifeste Met
  2. Utilisez cette commande dans le code pour activer USB Débogo paramètres.secure.puTinint (requérissant (). contentesResolver, paramètres.global.adb_enabled, 1) ou Paramètres.secure.putation ( Expédition (). contentesResolver, paramètres.global.adb_enabled, 0) Pour le désactiver
  3. important avant de pouvoir utiliser ces API système, vous devez accorder write_secure_settings de adb exécutant adb shell pm gagnez votre.package.name android.permission.write_secure_settins . Le périphérique doit être attaché à l'ordinateur avec USB DEBUG ACTIVE.

    J'ai développé une application simple qui utilise cette approche pour activer / désactiver certaines options de développeur tels que Débogou usb et Screen Active https://play.google.com/store/apps/details?id=it.stzan. DevTools

    Disclaimer: Je suis le développeur réel de devtools


0 commentaires