【解決方案】鴻蒙 / 礦鴻系統 Shell 無故退出問題(息屏導致)詳解

平臺環境

  • OpenHarmony 版本:4.1 release
  • 開發板:DAYU / RK3568
  • 調試工具:hdc

在使用 OpenHarmony 4.1 Release(礦鴻系統)進行開發時,遇到這樣的問題:

🚨 Shell 會在一段時間后自動退出,嚴重影響調試和測試效率。

根本原因:系統息屏導致 shell 會話被關閉。

本文將從 修改系統配置、設置電源模式、替換配置文件、代碼控制常亮 四種方法,講解如何解決此問題。


一、修改源碼實現全局不息屏

如果你正在編譯自己的系統鏡像(如 OHOS 源碼構建),可以直接修改系統電源配置文件,實現在所有模式下“不息屏”。

修改路徑:

base/powermgr/power_manager/services/native/profile/power_mode_config.xml

關鍵參數解釋:

Switch ID功能說明
101DisplayOffTime 息屏時間
102系統自動睡眠時間
115屏幕亮度

DisplayOffTime表示息屏的,因此只需要修改DisplayOffTime 對應的id:101即可

<switch id="101" value="xxx"/>value 改為 -1,即表示不設置息屏時間 = 永不息屏

修改示例:

<proxy id="600"> <!-- 正常模式 --><switch id="101" value="-1" recover_flag="0"/>...
</proxy>

建議你對所有模式(id 600~603)都設置 value="-1",這樣即使切換電源模式,也不會息屏。

修改后的文件

<!--Power Mode Definitions:        // 電源模式定義MODE_NORMAL = 600,             // 正常模式MODE_POWER_SAVE = 601,         // 省電模式MODE_PERFORMANCE = 602,        // 性能優先MODE_EXTREME_POWER_SAVE = 603, // 超級省電
-->
<!--Action Definitions:         // 行為定義DisplayOffTime = 101,       // 息屏時間控制SystemAutoSleepTime = 102,  // 系統自動睡眠時間控制AutoAdjustBrightness = 103, // 亮度自動調整時間控制AutoWindowRotation = 107,   // 窗口自動旋轉時間控制SystemBrightness = 115,     // 系統亮度調節VibratorsState = 120,       // 馬達(震動)狀態
-->
<switch_proxy version="1"><proxy id="600"><switch id="101" value="-1" recover_flag="0"/><switch id="102" value="0" recover_flag="0"/><switch id="103" value="-1" recover_flag="0"/><switch id="107" value="1" recover_flag="0"/><switch id="115" value="102" recover_flag="0"/><switch id="120" value="1" recover_flag="0"/></proxy><proxy id="601"><switch id="101" value="-1" recover_flag="0"/><switch id="102" value="5000" recover_flag="0"/><switch id="103" value="-1" recover_flag="0"/><switch id="107" value="-1" recover_flag="0"/><switch id="115" value="50" recover_flag="0"/><switch id="120" value="-1" recover_flag="0"/></proxy><proxy id="602"><switch id="101" value="-1" recover_flag="0"/><switch id="102" value="-1" recover_flag="0"/><switch id="103" value="-1" recover_flag="0"/><switch id="107" value="1" recover_flag="0"/><switch id="115" value="255" recover_flag="0"/><switch id="120" value="1" recover_flag="0"/></proxy><proxy id="603"><switch id="101" value="-1" recover_flag="0"/><switch id="102" value="1000" recover_flag="0"/><switch id="103" value="-1" recover_flag="0"/><switch id="107" value="-1" recover_flag="0"/><switch id="115" value="25" recover_flag="0"/><switch id="120" value="-1" recover_flag="0"/></proxy>
</switch_proxy>

二、通過命令行修改電源模式(臨時方案)

如果你不想重編系統鏡像,也可以臨時修改電源模式,使其使用“性能優先模式”來避免息屏。

操作步驟:

# 進入 shell
hdc shell# 設置為性能優先模式
power-shell setmode 602

成功輸出如下:

Set Mode: 602
Set Mode Success!

?? 注意:該設置在系統重啟后會恢復,需重新執行。

三、替換設備上的 power_mode_config.xml 文件(持久化方案)

若你無法編譯系統但希望持久生效,可以將修改后的 XML 文件推送至設備 /vendor 目錄。

步驟:

  1. 修改本地 XML 文件:
    power_mode_config.xml 中,將所有 <switch id="101" value="xxx"/> 設置為 -1

  2. 獲取寫權限:

hdc shell "mount -o remount,rw /"
  1. 準備目錄(如不存在):
hdc shell
mount -o rw,remount /vendor
cd /vendor/etc
mkdir power_config
exit
  1. 推送 XML 文件:
hdc file send power_mode_config.xml /vendor/etc/power_config/
  1. 重啟設備使其生效:
hdc shell reboot

修改生效后,無需每次開機都重新設置,除非你重新刷機覆蓋了 vendor 分區

四、應用內控制屏幕常亮(適用于 JS/TS 應用)

如果你只希望在當前應用運行時保持屏幕常亮,可在代碼中調用 setWindowKeepScreenOn

示例代碼(ArkTS):

private async keepScreenOn(status: boolean) {let context = getContext(this) as common.BaseContextlet windowClass = await window.getLastWindow(context)let isScreenOn = await windowClass.getWindowProperties().isKeepScreenOnif (!isScreenOn) {await windowClass.setWindowKeepScreenOn(status)}console.info("屏幕常亮狀態:" + isScreenOn)
}

建議在頁面生命周期中調用:

onPageShow() {this.keepScreenOn(true) // 頁面顯示時保持常亮
}onPageHide() {this.keepScreenOn(false) // 頁面隱藏時取消
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/91576.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/91576.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/91576.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Data Analysis TTAD=>CNN-BiGRU-MSA

TTAO 預處理、CNN-BiGRU-MSA 模型 時序數據回歸分析時序數據分析方法&#xff0c;特點&#xff1a;TTAO 預處理&#xff1a;通過三角拓撲結構增強時序特征的局部和全局關系混合模型架構&#xff1a;CNN 層提取局部特征模式BiGRU 捕獲雙向時序依賴多頭自注意力機制進行序列建模…

python-字典、集合、序列切片、字符串操作(筆記)

一、字符串常見操作&#xff08;重點&#xff09;?1.?2.字符串無法修改#錯誤示范 str1"djskds" str1[2]"3"3.?str1"abcand" # 輸出3 print(str1.index("and"))4.?str1"abcand" newStrstr1.replace("and",&quo…

【Android】EditText使用和監聽

三三想成為安卓糕手 一&#xff1a;用戶登錄校驗 1&#xff1a;EditText文本輸入框<EditTextandroid:id"id/et_user_name"android:layout_width"match_parent"android:layout_height"wrap_content"android:inputType"number"androi…

SQL 中根據當前時間動態計算日期范圍

在 SQL 中寫“動態時間”通常是指根據當前時間動態計算日期范圍&#xff0c;而不是寫死固定日期。以下是幾種常見寫法&#xff08;以 SQL Server / MySQL / PostgreSQL 為例&#xff09;&#xff1a;1. 獲取當前時間-- SQL Server SELECT GETDATE() AS now-- MySQL SELECT NOW(…

react-redux 類組件的 connect

store 目錄下 store/reducer.js import * as actionTypes from ./constantsconst initalState {counter: 100,banners: [],recommends: [] }/*** 定義reducer函數&#xff1a;純函數* param 參數一&#xff1a;store中目前保存的state* param 參數二&#xff1a;通過 dispatch…

數據分布是如何影響目標檢測精度

文章目錄一、研究背景與目標模型效果提升數據集優化二、研究問題明細各方向的關聯性與核心邏輯1. 高質量數據集的高效篩選與主動學習應用2. 基于推理結果的數據補充與增強方向優化3. 多類別場景下目標尺度與模型精度的關聯性4. 損失函數與數據增強對精度的量化影響5. 目標類型專…

高效批量轉換Java接口為MCP服務:降低重復勞動的實戰指南

高效批量轉換Java接口為MCP服務:降低重復勞動的實戰指南 在AI大模型技術飛速發展的今天,企業需要將現有Java接口快速適配為模型計算協議(MCP,Model Calculation Protocol)服務,以便與大模型生態無縫對接。然而,手動逐個轉換接口不僅耗時耗力,還容易因人為疏忽導致錯誤…

Eclipse Debug 配置指南

Eclipse Debug 配置指南 引言 Eclipse 作為一款功能強大的集成開發環境(IDE),在Java開發者中享有盛譽。在開發過程中,調試功能是必不可少的。本文將詳細介紹如何在Eclipse中配置調試環境,以便更高效地進行代碼調試。 1. 開發環境準備 在開始配置Eclipse調試環境之前,…

modelscope ProxyError: HTTPSConnectionPool(host=‘www.modelscope.cn‘, port=443)

目錄 Windows CMD&#xff1a; powershell Linux / macOS / Git Bash&#xff1a; win11 設置全局系統變量代理 modelscope ProxyError: HTTPSConnectionPool(hostwww.modelscope.cn, port443) 報錯&#xff1a; requests.exceptions.ProxyError: HTTPSConnectionPool(host…

Python學習之——序列化與反序列化

Python學習之——序列化與反序列化yaml & json & xmlyamljsonPython自帶Json庫xml一個綜合示例pickle & msgpack & marshalpicklemsgpackmarshal自定義導出py文件一個導出py文件的示例yaml & json & xml YAML & JSON &XML 如何選擇 yaml Py…

設計模式之代理模式:掌控對象訪問的優雅之道

代理模式&#xff1a;掌控對象訪問的優雅之道 引言&#xff1a;設計模式的重要性 在軟件開發中&#xff0c;設計模式是解決常見問題的可復用方案&#xff0c;它們如同建筑師的藍圖&#xff0c;為開發者提供了經過驗證的最佳實踐。在23種經典設計模式中&#xff0c;代理模式因其…

sqli-labs靶場通關筆記:第18-19關 HTTP頭部注入

第18關 User-Agent注入登錄正確的用戶名密碼&#xff0c;它會將User-Agent的信息回顯到頁面上。猜測UA頭可能存在注入點。利用bp抓包&#xff0c;在UA頭后面加一個單引號&#xff0c;發現報錯了。觀察報錯信息&#xff0c;顯示nearxx,admin)&#xff0c;推測后面應該還有兩個參…

基于按鍵開源MultiButton框架深入理解代碼框架(三)(指針的深入理解與應用)

文章目錄3、分析代碼3.3 按鍵的插入3.4 按鍵的刪除3.5 繼續分析狀態機核心理解4、寫在最后的總結5、思想感悟篇6、慈悲不渡自絕人3、分析代碼 3.3 按鍵的插入 // Button handle list headstatic Button* head_handle NULL;/*** brief Start the button work, add the handle…

ACOUSLIC-AI挑戰報告:基于低收入國家盲掃超聲數據的胎兒腹圍測量|文獻速遞-醫學影像算法文獻分享

Title題目ACOUSLIC-AI challenge report: Fetal abdominal circumferencemeasurement on blind-sweep ultrasound data from low-income countriesACOUSLIC-AI挑戰報告&#xff1a;基于低收入國家盲掃超聲數據的胎兒腹圍測量01文獻速遞介紹胎兒生長受限&#xff08;FGR&#xf…

集群聊天服務器各個類進行詳解

1.dh.h類定義概要類名&#xff1a; MySQL功能&#xff1a; 簡化MySQL的連接、查詢和更新操作&#xff0c;提供接口給上層應用使用。成員變量private:MYSQL *_conn;_conn&#xff1a;指向MYSQL結構體的指針&#xff0c;用于代表數據庫連接實例。由mysql_init()初始化&#xff0c…

電纜安全雙保險:不止防盜,更能防觸電的塔能智慧照明守護方案

城市照明、地下車庫以及園區路燈所涉及的電纜安全問題&#xff0c;向來都是運維管理方面頗為棘手的難題。在傳統的運維管理模式之下&#xff0c;電纜一旦被盜&#xff0c;那么所造成的影響可不小&#xff0c;一方面會帶來直接的經濟損失&#xff0c;另一方面還極有可能因為線路…

Leetcode刷題營第二十九,三十題:二叉樹的中序以及后序遍歷

94.二叉樹的中序遍歷 給定一個二叉樹的根節點 root &#xff0c;返回 它的 中序 遍歷 。 示例 1&#xff1a; 輸入&#xff1a;root [1,null,2,3] 輸出&#xff1a;[1,3,2]示例 2&#xff1a; 輸入&#xff1a;root [] 輸出&#xff1a;[]示例 3&#xff1a; 輸入&#x…

Rabbitmq Direct Exchange(直連交換機)可以保證消費不被重復消費嗎,可以多個消費者,但是需要保證同一個消息,不會被投遞給多個消費者

在 RabbitMQ 中&#xff0c;默認情況下&#xff0c;不能保證消息不被重復消費&#xff0c;但可以通過 隊列綁定方式 消費者競爭機制 來確保 同一消息只被一個消費者處理。以下是幾種可行的方案&#xff1a;方案 1&#xff1a;單隊列 競爭消費者模式&#xff08;默認行為&…

常用的OTP語音芯片有哪些?

唯創知音在 OTP 語音芯片有著26年的歷史&#xff0c;有著豐富的技術積累與產品迭代歷程。1999 年&#xff0c;唯創知音在廣州成立&#xff0c;彼時便開始在電子領域積極探索。2000 年&#xff0c;公司敏銳捕捉到語音芯片行業的發展潛力&#xff0c;正式進軍該領域。經過數年技術…

分布式光伏發電系統中的“四可”指的是什么?

在分布式光伏電站規模爆發式增長的今天&#xff0c;“看不見、管不住、調不動”的難題卻成為行業痛點。如何讓散布各處的光伏電站真正成為穩定高效的“綠色能量站”&#xff1f;2025年《分布式光伏發電開發建設管理辦法》大型工商業項目&#xff08;≥6MW&#xff09;明確要求具…