2014-05-09 14 views
1

InputManager를 호출 할 때 권한 검사 (pid/uid)가 있다는 것을 알고 있습니다.왜 안드로이드 원숭이가 입력 이벤트를 주입 할 권한이 있습니까?

원숭이 프로세스의 UID가 현재 활동의 UID와 동일하지 않습니다. 하지만 원숭이 프로세스가 현재 활동 창에 이벤트를 삽입 할 수있는 이유는 무엇입니까?

+0

nativeInjectInputEvent (이벤트, injectorUid, syncMode, timeoutMillis)를 확인하십시오. – bob

답변

0

이것은 "adb sh ell "사용자에게 권한이 있습니다. /etc/permissions/platform.xml :

<assign-permission name="android.permission.INJECT_EVENTS" uid="shell" /> 
0

원숭이 프로세스는 adb 쉘로 시작하고, adbd 프로세스는 원숭이 프로세스를 시작합니다. 원숭이 프로세스는 루트 사용자 그룹에 속합니다.

adb shell monkey --port 12345

USER PID PPID VSIZE RSS WCHAN PC 이름

루트 1 0 676 520 c0159a9c 00010378 S/초기화

루트 19691 (1) 4716 (452) FFFFFFFF 00018498 S/sbin에/adbd

루트 5972 19691 440824 19700 ffffffff 40077dc8 S com.android.commands.monkey

+0

예, ADB가 루트로 실행되는 에뮬레이터 또는 엔지니어링 빌드에서. 보안 장치에서 원숭이는 ADB의 셸 사용자로 대신 실행될 것입니다.이 사용자도 주사 용 권한이 있습니다. Google은 일반 장치 개발/테스트에 소비자 장치를 사용할 수 있도록 현명하게 명령했기 때문입니다. –

+0

답변 해 주셔서 감사합니다. – bob