MagiskHide Props Config 모듈로 ro.debuggable 값 변경하기

이 글은 읽는데 약 8분이 걸립니다.

안드로이드 앱을 디버깅 하기 위해서는 아래 두 개의 조건 중 최소 한 개를 만족해야한다.

  • 앱의 AndroidManifest.xml의 android:debuggable 값이 “true”일 것.
  • 기기의 ro.debuggable이 1로 되있을 것.

AndroidManifest의 플래그의 경우 대부분의 프로덕션 앱은 false로 되어있다. apktool등으로 디컴파일 후 매니페스트를 수정하고 다시 빌드할 수도 있지만, 만약 앱에 안티디버깅 등의 보호 조치가 되어있다면 이것부터 깨야하니 힘들다. 또한 빌드 후 실행 과정에서 무결성 검사에서 걸릴 수도 있다.

매니페스트 수정이 안되더라도 한 가지 방법이 있다. 휴대폰의 시스템 프로퍼티 값 중 ro.debuggable이라는 값이 있는데, 이 값이 1로 되있으면 매니페스트의 플래그 값을 쿨하게 씹고 디버깅이 가능해진다.당연히 기기는 루팅이 되어있어야한다.

오늘은 Magisk로 루팅된 기기에서 이 값을 변경하는 방법을 알아보겠다. 테스트 환경은 다음과 같다.

  • 갤럭시 S21 5G (SM-G991N)
  • 안드로이드 14
  • Magisk v27

이 글에서는 시스템 값을 수정합니다.

루팅된 기기에서 시스템 값을 수정하는 것은 경우에 따라 기기에 손상을 초래할 수 있습니다. 아래 글이 모든 기기에서 정상 동작한다는 보장은 없으므로, 충분한 사전 지식을 습득 후, 이에 유의해서 작업하시길바랍니다.
작업간에 발생한 문제에 대해서 글쓴이는 책임지지 않습니다.

MagiskHidePropsConf 모듈 설치

GitHub - Magisk-Modules-Repo/MagiskHidePropsConf: This tool is now dead...
This tool is now dead... Contribute to Magisk-Modules-Repo/MagiskHidePropsConf development by creating an account on Git...

위 레포지토리의 릴리즈 에서 모듈을 받아준다. 글 작성 시점 기준 최신 버전은 v6.1.2이다.

README와 설명에 더이상 업데이트를 하지 않는다고 되어있지만, 여전히 최신 안드로이드 및 Magisk에서 작동하는걸 확인했다.

다운받은 zip 파일을 Magisk 모듈로 설치한 다음, 재부팅 해주자.

ADB 연결해서 작업하기

재부팅 후, 기기를 usb로 데스크탑과 연결한다. adb를 준비한다. 이 글을 읽고있다면 adb 사용법 및 연결법은 다 알고있을테니 설명하지 않는다.

C:\Users\admin\testdir>adb shell
o1s:/ $ su

adb 쉘로 접속한 다음 su를 입력하여 root로 전환한다. $가 #으로 바뀐것을 확인하자.

props를 입력하면 아까 설치한 모듈이 실행된다.

o1s:/ # props

Loading... Please wait.


MagiskHide Props Config v6.1.2
by Didgeridoohan @ XDA Developers

=====================================
 Updating fingerprints list
=====================================

No connection.

MagiskHide Props Config v6.1.2
by Didgeridoohan @ XDA Developers

=====================================
 Select an option below.
=====================================

1 - Edit device fingerprint
2 - Force BASIC key attestation
3 - Device simulation (disabled)
4 - Edit MagiskHide props (active)
5 - Add/edit custom props
6 - Delete prop values
7 - Script settings
8 - Collect logs
u - Perform module update check
r - Reset all options/settings
b - Reboot device
e - Exit

See the module readme or the
support thread @ XDA for details.

Enter your desired option: 5

잠시 기다리면 이런 옵션 선택 화면이 나오는데 5를 입력하여준다.

MagiskHide Props Config v6.1.2
by Didgeridoohan @ XDA Developers

=====================================
 Custom props
 Select an option below:
=====================================

Set or edit custom prop values for your device.

Currently no custom props set.
Please add one by selecting
"New custom prop" below.

n - New custom prop
b - Go back to main menu
e - Exit

See the module readme or the
support thread @ XDA for details.

Enter your desired option: n

프롭을 새로 만들기 위해서 n을 입력한다.

MagiskHide Props Config v6.1.2
by Didgeridoohan @ XDA Developers

=====================================
 New custom prop
=====================================

Enter the prop to set. Example:
ro.sf.lcd_density

b - Go back
e - Exit

Enter your desired option: ro.debuggable

ro.debuggable을 입력한다.

MagiskHide Props Config v6.1.2
by Didgeridoohan @ XDA Developers

=====================================
 ro.debuggable
=====================================

ro.debuggable is
one of the sensitive props that can be
set by the MagiskHide props option.

Are you sure you want to proceed?

y - Yes
n - No
e - Exit

Enter your desired option: y

진짜 바꿀거냐고 물어보는데 y를 눌러 계속 진행

MagiskHide Props Config v6.1.2
by Didgeridoohan @ XDA Developers

=====================================
 ro.debuggable
=====================================

Enter the value you want to set
ro.debuggable to,
or select from the options below.

The currently set value is:
0
Please enter the new value.

b - Go back
e - Exit

Enter your desired option: 1

1로 바꿔야 하니까 1입력.

MagiskHide Props Config v6.1.2
by Didgeridoohan @ XDA Developers

=====================================
 ro.debuggable
=====================================

This will set ro.debuggable to:

1

Pick an option below to change
what boot stage the prop will
be set in, or set/reset a delay:

1 - Default (current)
2 - post-fs-data
3 - late_start service
4 - Both boot stages
d - Delay

Do you want to continue?

Enter y(es), n(o), e(xit)
or an option from above: y

뭐라뭐라 뜨는데 그냥 y눌러서 계속 진행한다.

Working. Please wait...

Working. Please wait...

Working. Please wait...

Working. Please wait...

Working. Please wait...

MagiskHide Props Config v6.1.2
by Didgeridoohan @ XDA Developers

=====================================
 Reboot - ro.debuggable
=====================================

Reboot for changes to take effect.

Do you want to reboot now (y/n)?

Enter y(es), n(o) or e(xit): y

Rebooting...

재부팅을 해야지 값이 적용된다고 한다. y를 눌러서 재부팅.

결과 확인

C:\Users\admin\testdir>adb shell
o1s:/ $ su
o1s:/ # getprop ro.debuggable
1

재부팅 후 쉘에서 getprop ro.debuggable을 입력해보면 1이 나온다.

이 값은 재부팅 해도 유지되니, 혹시 되돌리고 싶다면 위와 같은 방법으로 0으로 세팅하면 된다.

댓글