实现长按recovery按键5s之后恢复出厂设置,清除数据

kernel部分添加GPIO按键:

+++ b/arch/arm/boot/dts/rk3288-evb-android-rk808-hdmi.dts
@@ -167,7 +167,7 @@#size-cells = <0>;pinctrl-names = "default";
-               pinctrl-0 = <&pwr_key>;
+               pinctrl-0 = <&pwr_key &recv_key>;power_key: power-key {label = "GPIO Key Power";
@@ -176,6 +176,13 @@debounce-interval = <100>;wakeup-source;};
+               recovery_key: recovery_key {+                       label = "GPIO Key Recovery";
+                       gpios = <&gpio8 1 GPIO_ACTIVE_LOW>; //GPIO8_A1
+                       linux,code = <KEY_CLEAR>; // 0x163 ==> 355
+                       debounce-interval = <100>;
+                       wakeup-source;
+               };};#endif // __USED_GT_PWR_KEY___@@ -294,7 +301,6 @@status = "okay";};-#if (__USED_GT_EDP_PANEL__ == 1) // all for edp pnl&edp {@@ -828,6 +834,9 @@ assigned-clock-parents = <&cru PLL_CPLL>;pwr_key: pwr-key {rockchip,pins = <0 1 RK_FUNC_GPIO &pcfg_pull_none>; // pcfg_pull_default};
+               recv_key: recv-key {+                       rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };};

上层修改:
device/rockchip/rk3288目录的修改:

--- a/apk/system/usr/keylayout/Vendor_0001_Product_0001.kl
+++ b/apk/system/usr/keylayout/Vendor_0001_Product_0001.kl
@@ -81,4 +81,5 @@ key 466 TV_KEYMOUSE_LEFTkey 467 TV_KEYMOUSE_UPkey 468 TV_KEYMOUSE_RIGHTkey 469 TV_KEYMOUSE_DOWN
-key 418   MENU
\ No newline at end of file
+key 418   MENU
+key 355  KANA
\ No newline at end of file

.kl文件键值转换:android kl(key layout)文件是一个映射文件,是标准linux与anroid的键值映射文件。adb或者接串口使用dumpsys input命令可以查看当前设备对应使用的是哪个kl文件

framework的修改:

--- a/services/core/java/com/android/server/connectivity/NetworkMonitor.java
+++ b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
@@ -665,7 +665,7 @@ public class NetworkMonitor extends StateMachine {@VisibleForTestingprotected CaptivePortalProbeResult isCaptivePortal() {-        if (!mIsCaptivePortalCheckEnabled||true) { //added for not check CaptivePortal
+        if (!mIsCaptivePortalCheckEnabled) {validationLog("Validation disabled.");return new CaptivePortalProbeResult(204);}
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 5d95846..cc53b20 100755
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -258,6 +258,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {private static StatusBarManager mStatusBarManager;private static boolean mStatusFlag=true;static SparseArray<String> sLaunchKeyCategories = new SparseArray<String>();
+    private boolean mFactory=true;/*** These are the system UI flags that, when changing, can cause the layout* of the screen to change.
@@ -3293,6 +3294,16 @@ public class PhoneWindowManager implements WindowManagerPolicy {return -1;}}
+       if (keyCode == KeyEvent.KEYCODE_KANA) {
+          if (down && mFactory){
+                 mFactory = false;
+                mHandler.sendMessageDelayed(mHandler.obtainMessage( MSG_DISPATCH_MEDIA_KEY_REPEAT_WITH_WAKE_LOCK, event), 5000);//long press 5s
+             }
+         else if(!down){
+                  mFactory = true;
+             mHandler.removeMessages(MSG_DISPATCH_MEDIA_KEY_REPEAT_WITH_WAKE_LOCK);
+           }
+      }if(down){if (sLaunchKeyCategories .size()<=0) {File file = new File("/etc/key.conf");
@@ -6519,6 +6530,10 @@ public class PhoneWindowManager implements WindowManagerPolicy {void dispatchMediaKeyRepeatWithWakeLock(KeyEvent event) {mHavePendingMediaKeyRepeatWithWakeLock = false;+        if(event.getKeyCode() == KeyEvent.KEYCODE_KANA){
+            mContext.sendBroadcast(new Intent(Intent.ACTION_MASTER_CLEAR));
+            return;
+       }KeyEvent repeatEvent = KeyEvent.changeTimeRepeat(event,SystemClock.uptimeMillis(), 1, event.getFlags() | KeyEvent.FLAG_LONG_PRESS);if (DEBUG_INPUT) {

rk3288_Android7.1长按recovery按键5s之后恢复出厂设置相关推荐

  1. 华为7c手机怎么恢复出厂设置_华为荣耀畅玩7A/7C进recovery双清格机恢复出厂设置方法...

    华为荣耀畅玩7A/7C进recovery双清格机恢复出厂设置方法.双清操作虽然不是很复杂,但是有一部分华为荣耀畅玩7A/7C机友还是不太了解的,为了让华为荣耀畅玩7A/7C新手了解一下详细的操作方法, ...

  2. Android 9.0 recovery 菜单页跳过弹窗自动 WIPE_DATA(恢复出厂设置)

    1.概述 在9.0的系统产品开发中,对系统原生的recovery功能也是系统中比较重要的一个部分,所以对于恢复出厂设置在开发中也是常有的功能 而在一款产品的开发过程中,由于在recovery界面需要手 ...

  3. Android知识点 431 -- recovery 强制执行恢复出厂设置(Rescue Party)

    转载原文:https://www.cnblogs.com/codeking100/p/10339258.html 返回知识列表:Android知识点list 1 Incremented rescue ...

  4. Android 8.1 recovery 强制执行恢复出厂设置

    在工作中开发过程中,我们经常调试apk,然后推进机器里面去会已停止运行,你点几下就会恢复出厂设置. 意思是说,不能加载正常的安卓系统,可能数据损坏,如果你继续收到此消息,请执行恢复出厂设置擦除所有的用 ...

  5. recovery 强制执行恢复出厂设置(Rescue Party)

    有时候我们在系统正常运行的时候,突然跑到recovery里面了,并且停在了如下界面: Can't load Android system. Your data may be corrupt. If y ...

  6. 2021-11-12 Android 11 长按按键进入恢复出厂设置的实现方法-PhoneWindowManager里面用发广播的模式

    一.kernel部分主要发按键信息到android上层. diff --git a/kernel/drivers/misc/key/reset_key.c b/kernel-4.14/drivers/ ...

  7. 华为mate10pro计算机设置,华为mate10 pro双清教程,怎么进recovery清理数据和恢复出厂...

    有关这个华为mate10 pro手机的双清操作教程一直没有给大家分享,有的小伙伴在使用这个手机的时候遇到了一些小问题,需要通过这个双清的操作来解决了,可是又不知道从哪里入手,因此下面整理了一个相关的双 ...

  8. Android 恢复出厂设置(recovery)

    Android 恢复出厂设置基本流程 (1)遥控器/按键板后门键触发,或者应用里面从系统设置里面恢复出厂选项也可触发: // 后面以系统设置的应用触发为例 (2)选择恢复出厂设置之后,就会发送广播&q ...

  9. Android 9.0 进入recovery模式 自动恢复出厂设置的定制化

    1.概述 在9.0 设备中,由于定制的设备没有音量+和音量-按键,所以通过手动选择recovery选择界面的模式时,就不能选择进入哪种模式,这时就需要进入recovery的时候,默认进入恢复出厂设置模 ...

  10. Android 11.0 进入recovery模式(等待用户选择recovery模式界面)进入自动恢复出厂设置模式

    1.概述 在定制11.0的产品的时候,由于没有音量键 所以用音量键和电源键来选择recovery模式就无法实现了 所以当进入recovery选择模式界面 就一直停在那里 根据需要 要修改成进入等待用户 ...

最新文章

  1. Thinkphp5 用ab压力测试工具测试高并发请求
  2. C语言 遍历字符串数组
  3. PHP Mysql类【转】
  4. vue父组件传值给字组件
  5. SAP UI5 应用开发教程之三十三 - SAP UI5 应用的响应式布局特性(Responsiveness)试读版
  6. 《javaScript100例|04》自动播放——Js幻灯片缓冲效果
  7. spring AOP 之一:spring AOP功能介绍
  8. 修改dts后重编译_「正点原子FPGA连载」第二十章另一种方式编译ZYNQ镜像
  9. Cocos Creator棋牌开发-部署经验总结
  10. 从入门到入土:Python爬虫学习|实例练手|爬取LOL全英雄信息及技能||异步加载|初级难度反扒处理|寻找消失的API
  11. mysql实现自动更新时间戳
  12. java 注释器_注释和注释处理器入门指南
  13. xxl-job架构源码解析
  14. Selenium实现网页自动签到的Python脚本-win11
  15. 乐嘉老师色彩性格测试完全版
  16. Python非线性拟合自定义函数参数(对标MATLAB-nlinfit函数)
  17. esxtop 指标%RDY,NUMA,Wide-VMs
  18. 《做有质感的民族》方文山
  19. matlab书籍(数学建模,信号处理,智能优化,统计分析)
  20. 多穿立体库系统四向车PLC流程控制

热门文章

  1. ansible 循环与条件判断when
  2. Oracle 中取当前日期的上个月最后天和第一天
  3. js实现的笛卡尔乘积-商品发布
  4. Hadoop、Zookeeper、Hbase分布式安装教程
  5. ACL2020 | 什么时候值得用BERT上下文嵌入
  6. CS224N笔记(十):问答系统
  7. 【面试题】机器学习与深度学习常见面试题
  8. 【10.8】每日NLP学术论文推荐
  9. NLP自然语言处理必修清单(修炼法则)
  10. 论文赏析[EMNLP18]针对自顶向下和中序移进归约成分句法分析的Dynamic Oracles