# 唤醒åŽç³»ç»ŸåŠ¨ä½œå®šåˆ¶å¼€å‘指导 ## 概述 ### 简介 OpenHarmony支æŒç³»ç»Ÿç¡çœ 时唤醒执行动作,如在ç¡çœ ä¸ä½Žç”µé‡æƒ…况下唤醒使系统关机。当设备进入ç¡çœ 状æ€åŽï¼Œå¯ä»¥æ ¹æ®ç”¨æˆ·é…置的ç–略唤醒并执行对应动作。但ä¸åŒäº§å“å¯æ”¯æŒçš„场景å¯èƒ½ä¸åŒï¼Œæ¯”如ä¸æ”¯æŒä½Žç”µé‡å”¤é†’。为æ¤ï¼ŒOpenHarmonyæ供唤醒åŽåŠ¨ä½œçš„定制方å¼ï¼Œäº§å“å¯ä»¥æ ¹æ®å…·ä½“çš„è®¾è®¡è§„æ ¼æ¥å®šåˆ¶æ¤ç‰¹æ€§ã€‚ ### 约æŸä¸Žé™åˆ¶ 约æŸï¼š 唤醒åŽåŠ¨ä½œç‰¹æ€§éœ€è¦é€‚é…: - 满足唤醒æ¡ä»¶ï¼ˆå¦‚电é‡ä½ŽäºŽé˜ˆå€¼ï¼‰æ—¶è§¦å‘电æºé”®äº‹ä»¶; - å”¤é†’åŽŸå› ï¼ˆå¦‚ä½Žç”µé‡å”¤é†’)ä¿å˜åˆ°å†…æ ¸èŠ‚ç‚¹ã€‚ é…ç½®ç–略: 产å“定制的é…置路径,需è¦æ ¹æ®[é…ç½®ç–ç•¥](https://gitee.com/openharmony/customization_config_policy)决定。本开å‘指导ä¸çš„定制路径以`/vendor`进行举例,请开å‘è€…æ ¹æ®å…·ä½“的产å“é…ç½®ç–略,修改定制路径。 ## å¼€å‘指导 ### æ建环境 设备è¦æ±‚: æ ‡å‡†ç³»ç»Ÿå¼€å‘æ¿ï¼Œå¦‚DAYU200/Hi3516DV300å¼€æºå¥—件。 环境è¦æ±‚: Linux调测环境,相关è¦æ±‚å’Œé…ç½®å¯å‚考《[快速入门](../quick-start/quickstart-overview.md)》 ### å¼€å‘æ¥éª¤ 本文以[DAYU200](https://gitee.com/openharmony/vendor_hihope/tree/master/rk3568)为例介ç»å”¤é†’æºçš„定制方法。 1. 在产å“目录`/vendor/hihope/rk3568`下创建power_manager文件夹。 2. å‚考[唤醒æºæ–‡ä»¶å¤¹](https://gitee.com/openharmony/powermgr_power_manager/tree/master/services/native/profile)åˆ›å»ºç›®æ ‡æ–‡ä»¶å¤¹ï¼Œå¹¶å®‰è£…åˆ°`/vendor/hihope/rk3568/power_manager`ç›®å½•ä¸‹ï¼Œæ–‡ä»¶æ ¼å¼å¦‚下: ```text profile ├── BUILD.gn ├── power_wakeup_action.json ``` 3. 编写定制的power_wakeup_action.json,包å«å®šåˆ¶åŽçš„å”¤é†’åŽŸå› å’ŒåŠ¨ä½œå¦‚ä¸‹ï¼š ```json { "53": { "scene": "LowCapacity", "action": 2, "description": "(such as)53 is a uniquely wakeup reason by reading node through HDI interface(GetWakeupReason)" } } ``` **表1** 唤醒æºè¯´æ˜Ž | å”¤é†’æº | æè¿° | | -------- | -------- | | 53 | 低电é‡å”¤é†’ | 唤醒æºé…ç½®æ¥æºäºŽå®žé™…场景,如读å–节点或其他获得,description用æ¥æ述具体æ¥æº **表2** 唤醒场景说明 | 唤醒场景 | æè¿° | | -------- | -------- | | LowCapacity | ä½Žç”µé‡ | **表3** action说明 | action | å–值 | æè¿° | | -------- | -------- | -------- | | ACTION_NONE | 0 | æ— åŠ¨ä½œ | | ACTION_HIBERNATE | 1 | è¿›å…¥ä¼‘çœ | | ACTION_SHUTDOWN | 2 | 关机 | 4. å‚考[唤醒æºçš„é…置文件夹ä¸çš„BUILD.gn](https://gitee.com/openharmony/powermgr_power_manager/blob/master/services/native/profile/BUILD.gn)编写BUILD.gn文件,将power_wakeup_action.json打包到`/vendor/etc/power_wakeup_action`目录下,é…置如下: ```shell import("//build/ohos.gni") #引用build/ohos.gni ohos_prebuilt_etc("wakeup_action_config") { source = "power_wakeup_action.json" relative_install_dir = "power_config" install_images = [ chipset_base_dir ] #安装到vendor目录下的必è¦é…ç½® part_name = "product_rk3568" #part_name为product_rk3568,以实现åŽç»ç¼–译 } ``` 5. å°†ç¼–è¯‘ç›®æ ‡æ·»åŠ åˆ°`/vendor/hihope/rk3568`目录下[ohos.build](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568/ohos.build)çš„"module_list"ä¸ï¼Œä¾‹å¦‚: ```json { "parts": { "product_rk3568": { "module_list": [ "//vendor/hihope/rk3568/default_app_config:default_app_config", "//vendor/hihope/rk3568/image_conf:custom_image_conf", "//vendor/hihope/rk3568/preinstall-config:preinstall-config", "//vendor/hihope/rk3568/resourceschedule:resourceschedule", "//vendor/hihope/rk3568/etc:product_etc_conf", "//vendor/hihope/rk3568/power_manager/profile:wakeup_action_config" //æ·»åŠ wakeup_action_config的编译 ] } }, "subsystem": "product_hihope" } ``` “//vendor/hihope/rk3568/power_manager/â€ä¸ºæ–‡ä»¶å¤¹è·¯å¾„,“profileâ€ä¸ºåˆ›å»ºçš„文件夹åå—,“wakeup_action_configâ€ä¸ºç¼–è¯‘ç›®æ ‡ã€‚ 6. å‚考《[快速入门](../quick-start/quickstart-overview.md)》编译定制版本,编译命令如下: ```shell ./build.sh --product-name rk3568 --ccache ``` 7. 将定制版本烧录到DAYU200å¼€å‘æ¿ä¸ã€‚ ### è°ƒæµ‹éªŒè¯ 1. 以新的唤醒æºé…置文件为例,更改之åŽï¼š ```json { "53": { "scene": "LowCapacity", "action": 2, "description": "(such as)53 is a uniquely wakeup reason by reading node through HDI interface(GetWakeupReason)" } } ``` 2. 修改[powermgr.gni](https://gitee.com/openharmony/powermgr_power_manager/blob/master/powermgr.gni),使能power_manager_feature_wakeup_action特性。 ``` power_manager_feature_wakeup_action = true ``` 3. å‚考[battery_config.json](https://gitee.com/openharmony/powermgr_battery_manager/blob/master/services/native/profile/battery_config.json)ä¸æ·»åŠ 如下é…ç½® ```json "charge_scene": { "low_battery_thers": { "set": { "path": "xxx" } } } ``` å…¶ä¸path为ä¿å˜ä½Žç”µé‡é˜ˆå€¼çš„节点路径。 4. 修改[batterymgr.gni](https://gitee.com/openharmony/powermgr_battery_manager/blob/master/batterymgr.gni),使能battery_manager_feature_set_low_capacity_threshold特性。 ``` battery_manager_feature_set_low_capacity_threshold = true ``` 5. 在[power_config.json](https://gitee.com/openharmony/drivers_peripheral/blob/master/power/interfaces/hdi_service/profile/power_config.json)ä¸æ·»åŠ 如下部分 ```json { "scene" :{ "wakeuo_cause": { "get": { "path": "yyy" } } } } ``` å…¶ä¸get为ä¿å˜ä½Žç”µé‡å”¤é†’åŽŸå› çš„èŠ‚ç‚¹è·¯å¾„ã€‚ 5. 修改[power.gni](https://gitee.com/openharmony/drivers_peripheral/blob/master/power/power.gni),打开drivers_peripheral_power_wakeup_cause_path特性。 ``` drivers_peripheral_power_wakeup_cause_path = true ``` 6. 在[hdf_peripheral.cfg](https://gitee.com/openharmony/drivers_peripheral/blob/master/base/hdf_peripheral.cfg)çš„pre-init修改节点æƒé™ä¸ºsystem。 ``` "chown system system xxx", "chown system system yyy", ``` 7. 使系统在ç¡çœ ä¸ç”µé‡ä¸‹é™è‡³é˜ˆå€¼ã€‚ 设备关机。