1. 개요
안드로이드 개발 보드에 AOSP를 커스텀 컴파일하여
안드로이드 운영체제를 새로 설치하는 과정을 반복 진행하며,
안드로이드 초기 셋팅 시스템 설정 값을 변경하여
테스트 시작에 필요한 기본 설정 시간을 줄여
시간 효율을 높이는 작업의 필요성을 느꼈습니다.
여러 가지 셋팅 변경 중에 Screen Off Timeout 시간을 조정하는 것을 이번 포스팅의 목표로 합니다.
설정 > 디스플레이 > 화면 자동 꺼짐 시간 의 초기 설정 값이 변경됩니다.
작업 환경은 안드로이드 빌드 버전으로 Android 9 Pie이며,
AOSP를 빌드하기 위한 PC의 운영체제는 Ubuntu 16.04 LTS입니다.
2. AOSP의 시스템 설정 값
안드로이드의 시스템 설정 값이 저장되어 있는 파일은 아래의 두 파일에 저장이 되어있습니다.
/frameworks/base/core/res/res/values/config.xml
/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
또한 제조사의 기본 설정값은 아래의 파일에 위치합니다.
/device/<company-name>/<product-name>/overlay/frameworks/base/core/res/res/values/config.xml
3. Screen Off Timeout 시간 변경
Sleep 시간을 변경하기 위해서는
/frameworks/base/packages/SettingsProvider/res/values/defaults.xml 파일의
<integer name="config_minimumScreenOffTimeout"> 부분을 변경해 줘야 합니다.
- <integer name="def_screen_off_timeout">60000</integer>
+ <integer name="def_screen_off_timeout">1800000</integer>
시간 단위는 ms이며, 기존 1분이었던 값을 30분으로 변경한 예제입니다.
추가로, timeout 시간을 -1로 입력하면 화면이 꺼지지 않는다고 합니다.
이외의 방법으로 PowerManagerService.java 를 변경하는 방법이 있습니다.
stackoverflow.com/questions/31189822/disable-screen-timeout-functionality-in-android-4-4-2-aosp
4. 화면 자동 꺼짐 시간 리스트에 원하는 시간 추가
커스텀한 시간 값이 Sleep 설정 시간이 설정 > 디스플레이 > 화면 자동 꺼짐 시간 리스트에 없으면
커스텀한 시간 값을 변경 시 초기 값으로 재설정이 불가능하게 됩니다.
이를 해결하기 위해선 리스트에 커스텀한 시간 값을 추가하는 방법을 사용해야 합니다.
packages/apps/Settings/res/values/arrays.xml 파일의
<string-array name="screen_timeout_entries"> 와
<string-array name="screen_timeout_values" translatable="false"> 부분을 변경해 줘야 합니다.
<!-- Display settings. The delay in inactivity before the screen is turned off. These are shown in a list dialog. -->
<string-array name="screen_timeout_entries">
<item>15 seconds</item>
<item>30 seconds</item>
<item>1 minute</item>
<item>2 minutes</item>
<item>5 minutes</item>
<item>10 minutes</item>
<item>30 minutes</item>
+ <!-- custom screen off timeout -->
+ <item>60 minutes</item>
</string-array>
<!-- Do not translate. -->
<string-array name="screen_timeout_values" translatable="false">
<!-- Do not translate. -->
<item>15000</item>
<!-- Do not translate. -->
<item>30000</item>
<!-- Do not translate. -->
<item>60000</item>
<!-- Do not translate. -->
<item>120000</item>
<!-- Do not translate. -->
<item>300000</item>
<!-- Do not translate. -->
<item>600000</item>
<!-- Do not translate. -->
<item>1800000</item>
+ <!-- custom screen off timeout -->
+ <item>3600000</item>
</string-array>
screen timeout 에 1시간을 추가한 예제입니다.
5. Minimum Screen Off Timeout setting
스크린이 꺼지는 시간의 최소 시간은 기본 15초로 되어있습니다.
이를 늘리기 위해서는 /frameworks/base/core/res/res/values/config.xml 파일의
<integer name="config_minimumScreenOffTimeout"> 부분의 시간을 변경하여야 합니다.
- <integer name="config_minimumScreenOffTimeout">10000</integer>
+ <integer name="config_minimumScreenOffTimeout">30000</integer>
minimum screen off timout을 10초에서 30초로 변경시킨 예제입니다.
위와 같이 설정을 변경하게 되면,
screen off timeout 시간을 15초로 설정하여도 실제 timeout 시간은 30초가 됩니다.
15초 아래의 값을 minimum screen off timout 값으로 설정하기 위해서는
/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java 부분도
변경해 주어야 합니다.
**
**
// Default timeout in milliseconds. This is only used until the settings
// provider populates the actual default value (R.integer.def_screen_off_timeout).
private static final int DEFAULT_SCREEN_OFF_TIMEOUT = 15 * 1000;
private static final int DEFAULT_SLEEP_TIMEOUT = -1;
**
**
위의 PowerManagerService.java 코드 부분에 DEFAULT_SCREEN_OFF_TIMEOUT을 수정해 주어야 합니다.
6. 기타
현 포스팅은 Android 9 Pie를 기준으로 작성한 포스팅입니다.
참고 사이트는 제가 이 문제를 해결하는데 큰 도움을 준 사이트들이기 때문에
문제 해결에 큰 도움이 될 것이라 생각합니다.
문의사항이나 오류 & 기타 질문은 댓글로 남겨주시면 최대한 빠르게 답변 및 반영하겠습니다.
X. 참고 사이트
myelectroniclife-alagappan.blogspot.com/2012/05/dont-want-your-android-to-sleep-soon.html
beatuslab.com/main/bbs/board.php?bo_table=BBSTBL001&wr_id=14
stackoverflow.com/questions/16770639/how-do-i-set-the-default-properties-in-an-aosp-build
scofieldorz.blogspot.com/2019/11/defstayonwhilepluggedin-for-android.html
scofieldorz.blogspot.com/2018/11/android-default-settings.html
stackoverflow.com/questions/31189822/disable-screen-timeout-functionality-in-android-4-4-2-aosp
'Coding > Android' 카테고리의 다른 글
안드로이드 Java 난수 발생 시키기_Random Number (0) | 2020.03.22 |
---|---|
안드로이드 HttpURLConnection을 이용한 CCTV CGI control (0) | 2019.05.11 |
안드로이드 init.rc와 ifconfig를 통한 부팅시 고정 아이피 설정 (0) | 2019.05.07 |
안드로이드 부팅 후 앱 자동실행_AndroidStudio (3) | 2019.05.04 |
안드로이드 시리얼 통신_USB_COM_PROT (8) | 2019.04.30 |