Computer >> 컴퓨터 >  >> 스마트폰 >> Android

안드로이드 ADB로 앱 권한 부여하는 방법 — 루팅 없이 고급 권한 설정하기

대부분의 안드로이드 앱은 저장소 접근이나 카메라 사용 같은 기본 권한을 손쉽게 요청할 수 있습니다. 하지만 일부 앱은 정상적으로 작동하려면 시스템 수준의 권한이 필요합니다.

휴대폰을 루팅하면 이런 문제를 해결할 수 있지만, 과정이 복잡하고 상황에 따라 불필요할 수도 있습니다. 대신 ADB 명령어를 사용하면 루팅 없이도 고급 권한을 부여할 수 있습니다.

이 글에서는 ADB가 무엇인지, 그리고 ADB를 활용해 안드로이드 앱에 권한을 부여하는 방법을 단계별로 살펴보겠습니다.

ADB(Android Debug Bridge)란?

안드로이드에서 일반 사용자는 루팅을 통해 운영체제 파일을 수정하는 등의 고급 작업 없이는, 불필요한 사전 설치 앱을 삭제하는 것과 같은 시스템 보호 영역의 작업을 수행하기 어렵습니다. 바로 이럴 때 ADB(Android Debug Bridge)가 유용하게 쓰입니다.

ADB는 안드로이드 기기를 컴퓨터에 연결해 원래 루트 권한이 필요한 작업을 수행할 수 있게 해주는 명령줄 도구입니다.

다양한 ADB 명령어를 활용하면 시스템 앱 삭제, APK 파일 설치, 시스템 로그 확인, 앱에 추가 권한 부여 등 여러 작업을 처리할 수 있습니다.

ADB로 권한 부여하는 방법

명령어를 실행하기 전에 먼저 기기와 ADB 연결을 설정해야 합니다. ADB 명령어는 모든 운영체제에서 동일하기 때문에 Windows, Mac, Linux 중 어느 것을 사용해도 큰 차이가 없습니다.

다만 Windows 사용자는 PowerShell을, Mac과 Linux 사용자는 터미널(쉘)을 사용해야 한다는 점만 기억하세요.

1. SDK 도구 다운로드

Android 개발자 공식 웹사이트에 접속하여 자신의 운영체제에 맞는 SDK Platform-Tools 파일을 다운로드하세요.

2. ZIP 파일 압축 해제

이 단계는 Windows 사용자만 해당됩니다. Mac이나 Linux 사용자라면 바로 다음 단계로 넘어가세요.

Windows 사용자라면 ZIP 파일을 다운로드한 위치로 이동한 뒤 압축을 해제하고, platform-tools 폴더를 한 번 클릭하세요. (폴더 안으로 더블클릭해서 들어갈 필요는 없습니다.)

3. PowerShell 또는 터미널 열기

Windows 사용자는 Alt 키를 누른 상태에서 F, S, A 키를 순서대로 하나씩 눌러주세요. 이 조합을 사용하면 관리자 권한으로 PowerShell이 열립니다.

Linux나 Mac 사용자라면 platform-tools 폴더의 내용물이 있는 위치에서 터미널을 열어야 합니다.

4. 개발자 옵션 활성화

아직 개발자 옵션을 켜지 않았다면 스마트폰에서 활성화해야 합니다. 설정 > 휴대전화 정보로 이동한 후 빌드 번호를 일곱 번 연속으로 탭하세요.

비밀번호 입력을 요구하는 화면이 나타나면 잠금 화면 비밀번호를 입력하면 됩니다.

5. USB 디버깅 활성화 후 휴대폰 연결

개발자 옵션 메뉴로 이동하여 USB 디버깅을 활성화하세요. 경고 팝업이 뜨면 확인을 누릅니다. 마지막으로 USB 케이블을 이용해 휴대폰을 컴퓨터에 연결하세요.

6. 기기 연결 확인

PowerShell 또는 터미널에 아래 명령어를 입력해 기기가 정상적으로 연결되었는지 확인합니다.

.\adb devices

명령어 입력 후 기기의 고유 일련번호가 표시되지 않는다면 뭔가 문제가 있다는 신호입니다. 주로 PC가 기기의 ADB 드라이버를 인식하지 못할 때 발생합니다.

이 경우 ClockworkMod 웹사이트에서 범용(universal) 드라이버를 다운로드해 설치하거나, XDA 포럼에서 배포되는 최신 버전 ADB 인스톨러를 받아 설치하면 해결됩니다.

그래도 문제가 지속된다면 Windows에서 ADB 연결 오류를 해결하는 별도 가이드를 참고해 보세요.

7. USB 디버깅 허용

ADB 명령어를 처음 사용하는 경우라면, 6단계 이후 휴대폰 화면에 'USB 디버깅을 허용하시겠습니까?'라는 팝업이 나타납니다. '이 컴퓨터에서 항상 허용' 체크박스를 선택한 뒤 허용을 탭하세요.

8. ADB 명령어 입력

이제 PowerShell 또는 터미널에 다음 명령어를 입력합니다.

.\adb shell

마지막으로 아래 명령어 형식을 사용하면 ADB를 통해 어떤 앱에든 권한을 부여할 수 있습니다.

pm grant <package-name> <permission>

<package-name> 자리에는 앱의 패키지 이름을, <permission> 자리에는 부여할 권한을 넣으면 됩니다. 패키지 이름을 찾기 어렵다면 Package Name Viewer 2.0 같은 앱을 설치해 해당 앱의 패키지명을 검색할 수 있습니다. 여기서는 예시로 Battery Guru 앱에 권한을 부여해 보겠습니다.

예를 들어 아래와 같이 com.paget96.batteryguru가 패키지 이름이고, android.permission.PACKAGE_USAGE_STATS가 부여할 권한입니다. 이 명령을 실행하면 BatteryGuru 앱이 기기의 사용량과 통계 정보를 조회할 수 있게 됩니다.

pm grant com.paget96.batteryguru android.permission.PACKAGE_USAGE_STATS

또 다른 예시로, 루팅 없이 배터리 최적화 앱 Naptime을 사용하고 싶다면 다음 두 명령어를 입력해 필요한 권한을 부여할 수 있습니다.

pm grant com.franco.doze android.permission.DUMP
pm grant com.franco.doze android.permission.WRITE_SECURE_SETTINGS

ADB로 안드로이드를 더 자유롭게 제어하기

ADB는 의심할 여지 없이 다양한 작업에 활용할 수 있는 강력한 도구입니다. 앱 권한을 부여하는 데 그치지 않고, 루트 권한 없이도 시스템 데이터를 백업하는 등 여러 용도로 쓸 수 있습니다.

ADB의 진짜 힘을 한번 경험해 보면, 안드로이드 환경이 얼마나 유연하고 다재다능한지 직접 느끼게 될 것입니다.