Ajouter la permission INJECT_EVENTS

  • Auteur de la discussion dany-dev
  • Date de début
D

dany-dev

Membre
Inscrit
21 Avril 2015
Messages
5
Points
0
  • #1
Bonjour,

Je suis actuellement en cours de développement d'une application permettant à l'utilisateur de contrôler son appareil sans contact (accessibilité).
Je ne rentrerai pas trop dans les détails concernant les moyens mis en place, le principe étant qu'un service Android tourne en arrière-plan et interagit avec le système (clic, long clic etc...)

Toujours est-il qu'il me faut pouvoir émettre des signaux de clics ou autres entre ce service et l'Activité en cours (n'importe quelle activité, elle ne fera pas partie du projet).

Pour ce faire j'utilise cette ligne de code qui fonctionne parfaitement en interne (si j'utilise une activité lancée depuis le projet, mais ce n'est pas mon objectif final) :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
Cette solution requiert donc la permission INJECT_EVENTS que j'ai ajouté dans le manifest :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
Seulement l'erreur est toujours présente puisqu'il s'agit d'une permission système.
Existe-t-il moyen propre de faire fonctionner une application avec les droits systèmes ?

Après plusieurs recherches sur internet, j'ai trouvé une piste qui consiste à signer l'application avec les certificats Google, et d'ensuite l'installer dans le dossier system/app.
Je sais placer l'APK dans le bon dossier mais je ne parviens pas à signer l'application.

Si quelqu'un pouvait m'éclairer sur la marche à suivre... et surtout confirmer que cette piste est valide.

Pour infos, j'utilise :
Samsung Galaxy Tab Pro (SMT-320) rooté
Android Studio

Merci d'avance !
 
GN ONE FR TEAM

GN ONE FR TEAM

Member
Inscrit
9 Septembre 2013
Messages
588
Points
16
  • #2
Bonjour
Je ne suis pas développeurs d applications
Par contre j ai créé des rom à base stock ou non
Et je ne pense pas que ce sois possible d installé une application dans system/app même avec une signature Google pour une simple raison la capacité de mémoire allouer à ce dossier (virtuel) j ai jamais vue d applications s'installer dans ce dossier mise à par un flash par le recovery ou manuellement (root)
 
D

dany-dev

Membre
Inscrit
21 Avril 2015
Messages
5
Points
0
  • #3
Merci pour votre réponse.

Je me suis peut-être mal exprimé, il ne s'agit pas vraiment d'une installation mais d'un copié/collé de l'APK que je réalise via les droits root (j'utilise es explorer ou les commandes shell).

Il se trouve que sur ma tablette je retrouve certaines applications dans ce dossier (/system/app) notamment Youtube et Chrome. Ce sont sûrement des applications qui nécessitent des droits systèmes.

Cela dit, même en plaçant l'APK dans ce dossier j'obtiens toujours la même erreur lorsque je tente un clic sur une autre activité.
Injecting to another application requires INJECT_EVENTS permission

Remarque : je n'ai pas signé mon application avec les certificats Google. Est-ce vraiment nécessaire pour faire fonctionner l'application avec les permissions ?
 
GN ONE FR TEAM

GN ONE FR TEAM

Member
Inscrit
9 Septembre 2013
Messages
588
Points
16
  • #4
Regarde de ce côté peut être il.y à la solution

S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
 
D

dany-dev

Membre
Inscrit
21 Avril 2015
Messages
5
Points
0
  • #5
Merci pour le lien.

Du coup je vais essayer de générer l'APK avec les certificats Google.
La liste des certificats :
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !


Je sais que ma tablette est sous android 4.4.2, mais après je ne sais pas si c'est du R1 ou R2, comment je peux trouver l'info ?

Si j'ai bien compris, une fois mon apk signé celui-ci ne fonctionnera que sur mon OS (4.4.2).
Il faudra que je signe mon app avec toutes les versions Android autorisées pour qu'ils fonctionnent avec les autres versions ? ou alors que je génère un apk par version ?
 
GN ONE FR TEAM

GN ONE FR TEAM

Member
Inscrit
9 Septembre 2013
Messages
588
Points
16
  • #6
Malheureusement je ne peux pas te répondre j'en ai aucune idée
 
D

dany-dev

Membre
Inscrit
21 Avril 2015
Messages
5
Points
0
  • #7
Je suis parvenu à générer l'APK signé avec la platforme 4.4.2 r2 (je suis parti du postulat que c'était celui-ci).
Pour ce faire j'ai lancé la commande :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

L'apk est généré et l'invite de commande me retourne "success".

Ensuite je copie l'apk signé dans le dossier /system/app et redémarre la tablette.
Le système installe l'application automatiquement (pendant le redémarrage, à la réflexion je sais pas s'il l'installe puisqu'elle n'est pas visible dans le gestionnaire d'applications mais apparaît dans le menu principal).

Je lance l'application et essaie à nouveau de cliquer sur une autre activité. Et j’obtiens encore l'erreur INJECT_EVENT. :pleur3:

Je ne voie pas quelle étape j'aurais pu manqué... Je commence à me demander si c'est faisable.
 
GN ONE FR TEAM

GN ONE FR TEAM

Member
Inscrit
9 Septembre 2013
Messages
588
Points
16
  • #8
Je vois pas DSL de pas pouvoir t aidé ça dépasse mes compétence
a tu essayer avec ton téléphone ou autre android pour voir ?
 
D

dany-dev

Membre
Inscrit
21 Avril 2015
Messages
5
Points
0
  • #9
Pas de soucis, c'est vrai qu'il s'agit de quelque chose qu'en général on essaie d'éviter.

J'ai essayé avec mon HTC One M8, ça ne fonctionne pas non plus.
 
Haut Bas