In the project, the Android board needs to enter the desktop when it is turned on and never sleep. The project uses Fibocom’s SC806 Android development board and msm8909 platform.
Configure never sleep
diff
Put the diff file in front and you can apply it directly!
diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml index 64378d7ba7..3ee1079fb5 100644 --- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml + + + b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml @@ -18,7 + 18,8 @@ --> <resources> <bool name="def_dim_screen">true</bool> - <integer name="def_screen_off_timeout">60000</integer> + <!-- <integer name="def_screen_off_timeout">60000</integer> --> + <integer name="def_screen_off_timeout">-1</integer> <integer name="def_sleep_timeout">-1</integer> <bool name="def_airplane_mode_on">false</bool> <bool name="def_theater_mode_on">false</bool> diff --git a/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java b/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java index 7528a749b6..ff6ca47b87 100644 --- a/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java + + + b/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java @@ -1830,6 + 1830,7 @@ public final class PowerManagerService extends SystemService } private int getScreenOffTimeoutLocked(int sleepTimeout) { + int nosleep; int timeout = mScreenOffTimeoutSetting; if (isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) { timeout = Math.min(timeout, mMaximumScreenOffTimeoutFromDeviceAdmin); @@ -1840,6 + 1841,11 @@ public final class PowerManagerService extends SystemService if (sleepTimeout >= 0) { timeout = Math.min(timeout, sleepTimeout); } + nosleep = mScreenOffTimeoutSetting; + if(nosleep == 0) { + nosleep = mMaximumScreenOffTimeoutFromDeviceAdmin; + return Math.max(nosleep, mMaximumScreenOffTimeoutFromDeviceAdmin); + } return Math.max(timeout, mMinimumScreenOffTimeoutConfig); } diff --git a/packages/apps/Settings/res/values/arrays.xml b/packages/apps/Settings/res/values/arrays.xml index c10057b423..f50595f501 100755 --- a/packages/apps/Settings/res/values/arrays.xml + + + b/packages/apps/Settings/res/values/arrays.xml @@ -46,6 + 46,7 @@ <!-- 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>Never</item> <item>15 seconds</item> <item>30 seconds</item> <item>1 minute</item> @@ -57,6 + 58,8 @@ <!-- Do not translate. --> <string-array name="screen_timeout_values" translatable="false"> + <!-- Do not translate. --> + <item>0</item> <!-- Do not translate. --> <item>15000</item> <!-- Do not translate. -->
Detailed description
Setting UI
First modify the setting -> display -> sleep menu array and add the Never option
File path: packages/apps/Settings/res/values/arrays.xml
Add the following two lines:
<item>Never</item> -------------------------------------------------- <!-- Do not translate. --> <item>0</item>
Turn off the screen pause function
File path: frameworks/base/packages/SettingsProvider/res/values/defaults.xml
Modify the value of def_screen_off_timeout
to -1
<!-- <integer name="def_screen_off_timeout">60000</integer> --> <integer name="def_screen_off_timeout">-1</integer>
Change the power management scheme
File path: frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
Add the following statement in the getScreenOffTimeoutLocked
method:
private int getScreenOffTimeoutLocked(int sleepTimeout) {<!-- --> int nosleep; // Add new int timeout = mScreenOffTimeoutSetting; if (isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) {<!-- --> timeout = Math.min(timeout, mMaximumScreenOffTimeoutFromDeviceAdmin); } if (mUserActivityTimeoutOverrideFromWindowManager >= 0) {<!-- --> timeout = (int)Math.min(timeout, mUserActivityTimeoutOverrideFromWindowManager); } if (sleepTimeout >= 0) {<!-- --> timeout = Math.min(timeout, sleepTimeout); } // Start new judgment nosleep = mScreenOffTimeoutSetting; if(nosleep == 0) {<!-- --> nosleep = mMaximumScreenOffTimeoutFromDeviceAdmin; return Math.max(nosleep, mMaximumScreenOffTimeoutFromDeviceAdmin); } //End of new judgment return Math.max(timeout, mMinimumScreenOffTimeoutConfig); } private int getScreenDimDurationLocked(int screenOffTimeout) {<!-- --> return Math.min(mMaximumScreenDimDurationConfig, (int)(screenOffTimeout * mMaximumScreenDimRatioConfig)); }
Additional modifications to the Chinese environment
diff
The old rule is to run diff first and then apply directly.
diff --git a/vendor/qcom/proprietary/qrdplus/globalization/multi-language/res-overlay/packages/apps/Settings/res/values-zh-rCN/arrays.xml b/vendor/qcom/ proprietary/qrdplus/globalization/multi-language/res-overlay/packages/apps/Settings/res/values-zh-rCN/arrays.xml index 093ff5a..f3457f7 100755 --- a/vendor/qcom/proprietary/qrdplus/globalization/multi-language/res-overlay/packages/apps/Settings/res/values-zh-rCN/arrays.xml + + + b/vendor/qcom/proprietary/qrdplus/globalization/multi-language/res-overlay/packages/apps/Settings/res/values-zh-rCN/arrays.xml @@ -60,6 + 60,7 @@ <item>"5 minutes"</item> <item>"10 minutes"</item> <item>"30 minutes"</item> + <item>"Never"</item> </string-array> diff --git a/packages/apps/Settings/res/values-zh-rCN/arrays.xml b/packages/apps/Settings/res/values-zh-rCN/arrays.xml index 5cfbaa2..04b68e3 100755 --- a/packages/apps/Settings/res/values-zh-rCN/arrays.xml + + + b/packages/apps/Settings/res/values-zh-rCN/arrays.xml @@ -37,6 + 37,7 @@ <item msgid="7489864775127957179">"5 minutes"</item> <item msgid="2314124409517439288">"10 minutes"</item> <item msgid="6864027152847611413">"30 minutes"</item> + <item >"Never"</item> </string-array> <string-array name="dream_timeout_entries"> <item msgid="3149294732238283185">"Never"</item>
Detailed description
Small modifications to the default environment modification plan
Modify the path: frameworks/base/packages/SettingsProvider/res/values/defaults.xml
Change the value of def_screen_off_timeout
to 0.
Note: It is found that at -1, it will never sleep in the Chinese environment. If you select 15s in sleep in time, it will not sleep.
diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml old mode 100644 new mode 100755 index 61e38a3..0e497ab --- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml + + + b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml @@ -18,7 + 18,7 @@ --> <resources> <bool name="def_dim_screen">true</bool> - <integer name="def_screen_off_timeout">-1</integer> + <integer name="def_screen_off_timeout">0</integer> <integer name="def_sleep_timeout">-1</integer> <bool name="def_airplane_mode_on">false</bool> <bool name="def_theater_mode_on">false</bool>
Add “Never” in settings
Modify path:
vendor/qcom/proprietary/qrdplus/globalization/multi-language/res-overlay/packages/apps/Settings/res/values-zh-rCN/arrays.xml
Add “never” option
<!-- Display settings. The delay in inactivity before the screen is turned off. These are shown in a list dialog. --> <add-resource type="array" name="screen_timeout_entries"/> <string-array name="screen_timeout_entries"> <item>"Never"</item> // Add a new line <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> </string-array>
Modify the path: packages/apps/Settings/res/values-zh-rCN/arrays.xml
Add “never” option
<string-array name="screen_timeout_entries"> <item>"Never"</item> <item msgid="3342301044271143016">"15 seconds"</item> <item msgid="8881760709354815449">"30 seconds"</item> <item msgid="7589406073232279088">"1 minute"</item> <item msgid="7001195990902244174">"2 minutes"</item> <item msgid="7489864775127957179">"5 minutes"</item> <item msgid="2314124409517439288">"10 minutes"</item> <item msgid="6864027152847611413">"30 minutes"</item> </string-array>
msm8909 android7 verification passed!