Android/ADB

ADB를 활용한 시스템 속성(Property) 관리

임베디드 친구 2025. 3. 3. 10:23
728x90
반응형

ADB를 활용한 시스템 속성(Property) 관리

1. Android 시스템 속성 개요

Android 운영체제는 다양한 시스템 속성을 관리하고 있으며, 이를 통해 장치의 상태를 확인하거나 특정 기능을 활성화할 수 있습니다. 이러한 속성들은 getpropsetprop 명령어를 활용하여 조회하거나 변경할 수 있습니다.

시스템 속성은 주로 다음과 같은 파일에서 관리됩니다.

  • /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. 접두사가 붙은 속성을 사용해야 합니다.
  • 일부 속성은 즉시 적용되지 않으며, stopstart 명령어를 사용하여 Android 시스템 서비스를 재시작해야 합니다.
adb shell stop
adb shell start
  • ro. 속성은 직접 변경할 수 없으며, /system/build.prop 파일을 수정해야 합니다.
  • adb remount 명령어를 사용하여 /system 파티션을 쓰기 가능 상태로 변경한 후 다시 시도할 수 있습니다.

7. 정리

  • getprop을 사용하여 시스템 속성을 조회할 수 있습니다.
  • setprop을 활용하여 일부 속성을 변경할 수 있지만, ro. 속성은 변경할 수 없습니다.
  • 루트 권한이 필요한 속성 변경은 build.prop 파일을 직접 수정해야 합니다.
  • 특정 속성은 persist. 접두사를 사용하면 재부팅 후에도 유지됩니다.

이러한 ADB 명령어를 활용하면 Android 시스템 속성을 보다 효과적으로 관리할 수 있으며, 개발 및 디버깅에 유용하게 사용할 수 있습니다.

728x90
반응형