Comment faire pour exécuter Android app système sans racine autorisation?
Est-il un moyen d'exécuter du système Android app sans racine autorisation? Je peux exécuter le système d'application via adb tels que:
adb shell /system/bin/screencap -p /sdcard/écran.png
Dans mon application, je veux exécuter une commande shell comme ça sans commande "su". Est-il de toute façon? Comment empêcher les utilisateurs d'android apps pour exécuter le système d'application?
Vous devez vous connecter pour publier un commentaire.
Vous devriez être en mesure d'exécuter cette commande dans le code java:
Il y a quelques shell de commandes que vous pouvez exécuter sans avoir de racine. Si vous n'avez pas besoin d'exécuter "su". Je ne suis pas sûr si vous pouvez exécuter screencap. Certes, vous avez besoin de l'autorisation d'écrire à la SD_CARD dans votre application.
Mais pourquoi vous n'utilisez pas l'API Android pour faire de votre capture d'écran? Pour plus d'informations, lisez ce post sur stackoverflow: Procédure de programmation pour prendre une capture d'écran sur Android?
Androïdes modèle de sécurité de base sur l'id utilisateur, comme Linux. Chaque application a son propre id d'utilisateur. Ainsi, votre application a un nom d'utilisateur comme 1001. Si votre utilisateur est autorisé à exécuter la commande, vous pouvez, sinon, vous recevrez un message d'erreur.
EDIT:
Vous avez besoin de la racine de prendre des captures d'écran ou une application système. Il y a une autorisation READ_FRAME_BUFFER mais vous ne pouvez obtenir lorsque vous avez un système d'application. Ses un problème de sécurité quand une application peut prendre des captures d'écran de votre appareil.
J'ai trouvé cette API http://code.google.com/p/android-screenshot-library/ qui promet de prendre des captures d'écran sans racine. Je n'ai pas le tester. La bibliothèque commence à un service natif qui prend alors les captures d'écran pour vous.
Mais vous devez exécuter le service à chaque fois que votre téléphone des bottes. Il obtient ainsi le système des privilèges. Ce n'est pas vraiment à l'aise...
Conclusion: Il n'y a pas de bonne façon de faire des captures d'écran sans racine de code...
- Il d'être PAS, mais des fois, certaines fonctions qui ne sont pas destinés à l'usage public encore peut être utilisé. J'ai vu des exemples sur l'utilisation de java réflexion.
Je pense, pas.
La chose est adb shell et application utilisateur ont différents niveaux de sécurité en fonction de l'Utilisateur et Id de Groupe (UID et GID).
Plus d'infos: http://android-dls.com/wiki/index.php?title=Android_UIDs_and_GIDs
En outre, il existe des limitations via application des autorisations et invisible ils & interne classes, procédures, etc ce qui fait pour un usage interne.
P. S.: Sur les captures d'écran. Sur l'android market (google play) il y a peu d'applications qui fournissent des captures d'écran sans accès ROOT. Donc, c'est possible.
Bien que, depuis Android 4.0 captures d'écran sont disponibles "à partir de la boîte".