안드로이드 루트 권한 요청 (Superuser Intent 방식)

Source

  • Evernote/Technote scraps/April weather 안드로이드 루트 권한 요청하기 소스 코드.md

Summary

이 문서는 Android 앱에서 Superuser 앱을 통해 루트 권한을 요청하는 방법을 설명합니다. android.intent.action.superuser 인텐트를 사용하여 Superuser 앱에 권한 요청을 보내고, 사용자가 승인하면 Runtime.getRuntime().exec("su")를 통해 특권 명령을 실행하는 흐름을 다룹니다.

Key Points

  • Superuser 앱이 노출하는 android.intent.action.superuser 인텐트를 사용하여 루트 권한을 요청할 수 있음
  • 인텐트에 요청 앱의 이름(name)과 패키지명(packagename)을.putExtra로 전달
  • startActivityForResult로 요청을 보낸 후, 사용자가 ‘Yes’ 또는 ‘Always’를 선택해야만 권한이 부여됨
  • 권한 부여 시 Runtime.getRuntime().exec("su -c <command>")를 통해 루트 권한 명령 실행 가능
  • 사용자가 거부할 경우 명령 실행 실패