Meta Quest 에서의 ADB를 이용한 원격 패키지 실행
Meta Quest 에서의 ADB를 이용한 원격 패키지 실행
요약
ADB를 이용한 Meta Quest 제어 및 활용 가능성에 대한 테스트 결과를 문서화 함
자사 원격 Instruction 솔루션의 이슈 해소 및 추후 운영 방안 결정이 주요 목적임
대상 장비
1. Meta Quest 2
환경 구성
1. Windows PC
2. ASUS AC1900
제약 사항
1. 대상 장비는 Windows PC와 같은 로컬 망으로 구성 되어 있어야 함
2. 대상 장비는 Windows PC와 사전에 디버깅을 위한 유선 페어링 되어 있어야 함 (USB 디버깅을 허용하며, 접속 신뢰 중인 상태)
절차
1. powershell 실행
2. 'adb devices' 입력하여 접속 중인 대상 대상 장비 확인
3. 대상 장비의 IP 취득
3-1. 설정 메뉴를 통한 취득
3-2. 'adb shell ip addr show wlan0' 입력하여 IP 취득
4. 'adb tcpip 5555' 입력하여 wireless debugging 전환
5. 'adb connect 192.168.35.100' 입력하여 대상 장비와 무선 연결
6. 'adb shell' 입력하여 adb를 shell 모드로 실행
7. 'cmd package list packages' 입력하여 패키지 명 취득
(r> package:com.samwoo.SF_WH)
8. 'sysdump activity com.samwoo.SF_WH' 입력하여 액티비티 명 취득
(r> TASK 10121:com.samwoo.SF_WH id=2218 userId=0
r> ACTIVITY com.samwoo.SF_WH/com.epicgames.ue4.GameActivity 14d6f65 pid=17375)
9. 'am start -n com.samwoo.SF_WH/com.epicgames.ue4.GameActivity' 입력하여 패키지 실행
(r> Starting: Intent { cmp=com.samwoo.SF_WH/com.epicgames.ue4.GameActivity })
10. 컨트롤러를 이용하여 대상 장비 내 어플리케이션 종료
11. 전원 버튼을 눌러 대상 장비를 슬립 모드로 전환
12. 10분 간 대기 후 'adb devices' 입력하여 대상 장비의 상태가 offline 으로 전환 되었음을 확인
13. 근접 센서를 가려 대상 장비를 구동
14. 'adb devices' 입력하여 대상 장비의 상태가 attached 임을 확인
15. 'am start -n com.samwoo.SF_WH/com.epicgames.ue4.GameActivity' 입력하여 패키지 실행
결과
1. 동일 망 내 무선 접속 상황에서 원격으로 대상 장비에 지정된 패키지를 실행함
2. 대상 장비의 상태를 sleep으로 전환 후 재시도 하였을 때에도 연결이 유지됨을 확인함
결론
PowerShell 사용, ADB 명령어로 장비 연결, wireless debugging 설정, 패키지 및 액티비티 명 취득, 패키지 실행 포함. 장비 IP 주소 취득, 무선 연결 방법, 어플리케이션 실행 과정 상세 기술함
동일 로컬 네트워크 내에서 Meta Quest 2 원격 패키지 실행 성공 확인하였으며, 슬립 모드 후 연결 유지, 패키지 재실행 가능 확인함
전원 완전 차단 상태 및 다중 장비 연결 상태 시험은 진행되지 않아 즉각적 자사 Instruction 솔루션 적용에 신중 요구함
다만, 현재 결과는 ADB 원격 제어 및 패키지 실행 기능이 자사 Instruction 솔루션 이슈 해소에 잠재력 있음을 시사함으로, 추가 연구 및 개발로 제한 사항 극복, 다양한 환경 활용 가능성 있음
추가
cmd package list packages
r> package:com.samwoo.SF_WH
sysdump activity [패키지명]
>> sysdump activity com.samwoo.SF_WH
r> TASK 10121:com.samwoo.SF_WH id=2218 userId=0
r> ACTIVITY com.samwoo.SF_WH/com.epicgames.ue4.GameActivity 14d6f65 pid=17375
am start -n [패키지명]/[액티비티명]
ex) 정상 구동 가능한 경우
>> am start -n com.samwoo.SF_WH/com.epicgames.ue4.GameActivity
r> Starting: Intent { cmp=com.samwoo.SF_WH/com.epicgames.ue4.GameActivity }
ex) top-most 점유 중인 경우(경계 설정 등)
>> am start -n com.samwoo.SF_WH/com.epicgames.ue4.GameActivity
r> Starting: Intent { cmp=com.samwoo.SF_WH/com.epicgames.ue4.GameActivity }
r> Warning: Activity not started, intent has been delivered to currently running top-most instance.