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