2013-01-19 22 views
6

Wiem, że to nie jest pierwszy wątek na temat tego pozwolenia, ale pozostałe nie są ukończone lub nie pomagają mi.Pozwolenie: INJECT_EVENTS na instrumenację do innych aplikacji

To, czego potrzebuję, to nadmuchanie KeyEvents za pomocą oprzyrządowania. Działa to świetnie i jest szaleńczo szybsza niż metoda powłoki ("input keyevent"). Ale jeśli chcę wstrzyknąć innym aplikacjom, łapię wyjątek SecurityException. Nie zaskoczyło mnie to zbytnio, więc dodałem do mojego manifestu <uses-permission android:name="android.permission.INJECT_EVENTS" />. Eclipse przestaje debugować, informując mnie, że tylko aplikacje systemowe mogą korzystać z tego uprawnienia. Więc skompilowałem używając podpisanego narzędzia APK i popchnąłem ten apk do/system/app. Ponownie uruchomiono i zgadnij, co jest przeznaczone tylko dla jednego urządzenia specjalnego. Więc znam wszystkie specyfikacje i jest zakorzenione. Ale wymagane są długie i superużytkownikowe polecenia wtryskowe su. Chciałbym to zrobić z Instrumentation lub może jest jeszcze coś, co powinienem spróbować?

Oprogramowanie układowe nie zostało napisane przeze mnie, więc nie mam klucza platformy.

Dzięki za pomoc!

EDYCJA: Dostałem klucze platformy (deweloper użył normalnych Google), podpisałem i wyrównałem, a następnie popchnąłem apk do/system/app. Dodałem także do mojego manifestu android:sharedUserId="android.uid.system". Przy rozruchu nie ma już komunikatu logcat. Jednak gdy chcę wysłać keysync, nadal łapię SecurityException. Jakieś pomysły?

EDIT2: Oto fragment z ps. Wydaje się, że ist pakietu niewymienionych jako system

u0_a108 5241 2399 492044 48968 ffffffff 40113ab0 S com.mypackage 

Odpowiedz

3

Aktualizacja

Użyj SignTool znajduje here, a następnie iść do przodu i read on in my blog.


Ok, mam prawo platformy klucze i działa jak urok teraz! Podpisałem użyciu http://forum.xda-developers.com/showthread.php?t=1125626 i wymienić (przemianowany na znak .... do testkey ....) to testkeys wewnątrz folderu signare z

signapk-key.platform.x509.pem 
signapk-key.platform.pk8 

(Google dla nich)

Również upewnić się zipalign i następnie skopiować do/system/app. Instalowanie .apk w normalny sposób jest możliwe, ponieważ jest oflagowane jako aplikacja systemowa.

Powiązane problemy