ADB를 활용한 시스템 속성(Property) 관리
1. Android 시스템 속성 개요
Android 운영체제는 다양한 시스템 속성을 관리하고 있으며, 이를 통해 장치의 상태를 확인하거나 특정 기능을 활성화할 수 있습니다. 이러한 속성들은 getprop
과 setprop
명령어를 활용하여 조회하거나 변경할 수 있습니다.
시스템 속성은 주로 다음과 같은 파일에서 관리됩니다.
/system/build.prop
/default.prop
/vendor/build.prop
/system_ext/build.prop
이 속성들은 sys.
및 ro.
와 같은 접두사를 가지며, 각각의 속성은 Android 프레임워크와 시스템의 동작에 중요한 역할을 합니다. 다만, 일부 속성은 setprop
명령어를 사용하여 변경할 수 있지만, 일부 속성은 root
권한이 필요합니다.
2. getprop을 활용한 시스템 속성 조회
시스템 속성을 확인하기 위해 getprop
명령어를 사용할 수 있습니다. 다음과 같은 형식으로 사용됩니다.
adb shell getprop [속성명]
2.1. 전체 속성 목록 조회
adb shell getprop
위 명령어를 실행하면, 현재 설정된 모든 시스템 속성을 확인할 수 있습니다. 출력 결과는 속성명: 값
형식으로 표시됩니다.
2.2. 특정 속성 조회
예를 들어, 현재 Android 기기의 제품명을 확인하려면 다음과 같이 명령어를 실행할 수 있습니다.
adb shell getprop ro.product.model
예제 결과:
Pixel 6 Pro
또한, Android 버전을 확인하려면 다음 명령어를 사용할 수 있습니다.
adb shell getprop ro.build.version.release
예제 결과:
13
3. setprop을 활용한 시스템 속성 변경
일부 시스템 속성은 setprop
명령어를 사용하여 변경할 수 있습니다. 다음과 같은 형식으로 사용됩니다.
adb shell setprop [속성명] [값]
3.1. 디버그 모드 활성화
일부 sys.
접두사가 붙은 속성들은 런타임에서 변경이 가능합니다. 예를 들어, debug
속성을 활성화하려면 다음 명령어를 사용할 수 있습니다.
adb shell setprop debug.force_rtl 1
이후 UI가 오른쪽에서 왼쪽(RTL, Right-to-Left) 방향으로 변경됩니다.
3.2. 특정 로그 활성화
디버깅을 위해 특정 로그 출력을 활성화할 수도 있습니다.
adb shell setprop log.tag.ActivityManager DEBUG
이 명령어를 실행하면 ActivityManager
관련 로그가 DEBUG
수준으로 출력됩니다.
3.3. 네트워크 설정 변경
예를 들어, 네트워크 디버깅을 위해 Wi-Fi 상태를 변경하고 싶다면 다음 명령어를 사용할 수 있습니다.
adb shell setprop persist.sys.wifi.default true
이후 Wi-Fi가 자동으로 활성화될 수 있습니다.
4. root 권한이 필요한 속성 변경
ro.
로 시작하는 속성들은 일반적으로 읽기 전용(read-only) 속성이며, setprop
명령어를 사용하여 변경할 수 없습니다. 예를 들어 ro.build.version.sdk
속성을 변경하려고 하면 다음과 같은 오류가 발생합니다.
adb shell setprop ro.build.version.sdk 31
setprop failed: property 'ro.build.version.sdk' cannot be set
이러한 속성들을 변경하려면 시스템 이미지 수정 또는 Magisk과 같은 루팅 툴을 사용해야 합니다.
5. build.prop 파일 수정 (root 필요)
일부 속성은 /system/build.prop
파일을 직접 수정하여 변경할 수도 있습니다. 이 작업을 수행하려면 root 권한이 필요합니다.
5.1. build.prop 파일 백업
파일을 수정하기 전에 원본을 백업하는 것이 중요합니다.
adb root
adb remount
adb pull /system/build.prop ./build.prop.bak
5.2. 파일 수정
build.prop
파일을 편집하고 변경할 속성을 추가 또는 수정합니다.
예를 들어, 화면 해상도를 강제로 변경하고 싶다면 다음과 같은 속성을 추가할 수 있습니다.
ro.sf.lcd_density=320
5.3. 파일 적용 및 재부팅
파일을 다시 시스템으로 업로드한 후 적용하려면 다음과 같이 명령어를 실행합니다.
adb push build.prop /system/build.prop
adb shell chmod 644 /system/build.prop
adb shell reboot
이제 변경된 설정이 적용된 상태로 시스템이 부팅됩니다.
6. 특정 속성 변경이 적용되지 않는 경우 해결 방법
setprop
명령어로 설정한 값이 재부팅 후 초기화되는 경우persist.
접두사가 붙은 속성을 사용해야 합니다.- 일부 속성은 즉시 적용되지 않으며,
stop
및start
명령어를 사용하여 Android 시스템 서비스를 재시작해야 합니다.
adb shell stop
adb shell start
ro.
속성은 직접 변경할 수 없으며,/system/build.prop
파일을 수정해야 합니다.adb remount
명령어를 사용하여/system
파티션을 쓰기 가능 상태로 변경한 후 다시 시도할 수 있습니다.
7. 정리
getprop
을 사용하여 시스템 속성을 조회할 수 있습니다.setprop
을 활용하여 일부 속성을 변경할 수 있지만,ro.
속성은 변경할 수 없습니다.- 루트 권한이 필요한 속성 변경은
build.prop
파일을 직접 수정해야 합니다. - 특정 속성은
persist.
접두사를 사용하면 재부팅 후에도 유지됩니다.
이러한 ADB 명령어를 활용하면 Android 시스템 속성을 보다 효과적으로 관리할 수 있으며, 개발 및 디버깅에 유용하게 사용할 수 있습니다.
'Android > ADB' 카테고리의 다른 글
ADB를 활용한 부트 애니메이션 및 시스템 테마 변경 (0) | 2025.03.02 |
---|---|
ADB를 활용한 개발 및 보안 테스트 (0) | 2025.03.01 |
ADB를 활용한 특정 앱 강제 종료 및 재시작 (0) | 2025.02.28 |
ADB를 활용한 키 이벤트 및 터치 자동화 (0) | 2025.02.27 |
ADB를 활용한 GPS 및 위치 서비스 조작 (0) | 2025.02.26 |