简要说明实现逻辑:开机common(即常说的kernel目录,amlogic是common目录)中通过长按reset键(例如5s)来识别设置reboot mode 模式(通过meson_common_restart函数传参cmd,例如cmd设置为reboot_clear,当识别到cmd参数为reboot_clear时设置reboot_reason的属性值为MESONGXBB_FACTORY_RESET_REBOOT,然后去设置对应的寄存器,让系统重启的时候进入对应的模式即可,例如),

66 static u32 parse_reason(const char *cmd)67 {68         u32 reboot_reason;69         reboot_reason = MESONGXBB_NORMAL_BOOT;70         if (cmd) {71                 if (strcmp(cmd, "recovery") == 0 ||72                                 strcmp(cmd, "factory_reset") == 0)73                         reboot_reason = MESONGXBB_FACTORY_RESET_REBOOT;74                 else if (strcmp(cmd, "update") == 0)75                         reboot_reason = MESONGXBB_UPDATE_REBOOT;76                 else if (strcmp(cmd, "fastboot") == 0)77                         reboot_reason = MESONGXBB_FASTBOOT_REBOOT;78                 else if (strcmp(cmd, "bootloader") == 0)79                         reboot_reason = MESONGXBB_BOOTLOADER_REBOOT;80                 else if (strcmp(cmd, "report_crash") == 0)81                         reboot_reason = MESONGXBB_CRASH_REBOOT;82                 else if (strcmp(cmd, "uboot_suspend") == 0)83                         reboot_reason = MESONGXBB_UBOOT_SUSPEND;84 #ifdef CONFIG_FACTORY_RESET85                 else if (strcmp(cmd, "reboot_clear") == 0)86                         reboot_reason = MESONGXBB_FACTORY_RESET_REBOOT;87 #endif

说白了就是通过往reboot_reason赋值一个对应的字符串例如reboot_clear,然后,uboot中通过 get_rebootmode 来识别reboot模式. 如果是factory reset reboot,就设置环境变量wipe_data_gt = wipe_data_gt, 然后环境变量wipe_data_gt通过system.prop桥接(在recovery模式的时候在根目录的default.prop文件中,在正常启动的时候在build.prop目录),recovery通过get_bootloader_env读取环境变量wipe_data_gt 的属性,然后设置clear_data标志位,clear_data为true的时候就直接执行清除数据和缓存操作,然后重启设备,clear_data如果是false的时候则进入recovery界面,执行循环等待函数prompt_and_wait,等待用户的操作进入下一步。

amlogic_android7.1的s905x平台长按按键5s清除数据和缓存的实现思路相关推荐

  1. 解决vmware“二进制转换与此平台长模式不兼容.....”的问题

    原文链接:http://dtbuluo.com/113.html 问题说明: 启动vmware出现:1.二进制转换与此平台长模式不兼容....等等字样: 2.vmware启动一会,系统直接重启,这个现 ...

  2. 大数据打造你的变美频道——数加平台上小红唇的大数据实践

    在2017在线峰会--票选最美云上大数据暨大数据技术峰会上,来自小红唇的王洋分享了数加平台上小红唇的大数据实践.他对数据仓储解决方案和搜索引擎进行了详细介绍.通过算法平台应用的基于视频元信息的回归.近 ...

  3. 各种平台的表达芯片跟mRNA-seq数据比较

    各种平台的表达芯片跟mRNA-seq数据比较 RNA-Seq 表达谱 芯片数据分析 文章见:http://journals.plos.org/plosone ... ournal.pone.00786 ...

  4. 【工业互联网】郭朝晖:工业互联网平台背景下的工业大数据与智能制造

    4月11日,工业互联网平台宣讲团第二季第三讲继续开讲,由走向智能研究院工业大数据首席专家.清华大学访问学者郭朝晖为大家分享"工业互联网平台背景下的工业大数据与智能制造"." ...

  5. 亚信大数据平台产品经理 杨晋:大数据是怎么应用于技术方面的

    2014中关村大数据日于2014年12月11日在中关村举办,大会以大会以"聚合数据资产,推动产业创新"为主题,探讨数据资产管理和变现.大数据深度技术以及行业大数据应用创新和生态系统 ...

  6. 58同城离线计算平台设计与实践(大数据进阶)

    编者荐语: 58离线计算平台基于 Hadoop 生态体系打造,单集群4000+台服务器,数百 PB 存储,日40万计算任务,面临挑战极大.本次分享将聚焦大数据平台离线计算和大家一起系统的探讨58在离线 ...

  7. 移动大数据平台的架构、实践与数据增值(1)

    转转:感谢分享http://developer.51cto.com/art/201512/500294.htm APP是进入移动互联网的重要载体,故得到越来越多开发者的关注.打造APP,无论是开发.产 ...

  8. 移动大数据平台的架构、实践与数据增值

    吴磊,友盟公司数据平台负责人.目前主要负责Umeng移动数据分析平台的软件研发和系统架构.拥有10多年的软件开发经验,先后在大型通讯系统,通用搜索引擎以及海量数据分析等领域工作.在基础平台架构和海量数 ...

  9. 第三百七十七节,Django+Xadmin打造上线标准的在线教育平台—apps目录建立,以及数据表生成...

    第三百七十七节,Django+Xadmin打造上线标准的在线教育平台-apps目录建立,以及数据表生成 apps目录建立 我们创建一个apps目录,将所有的app放到apps目录里去,这样方便管理,也 ...

  10. 【.NET Core项目实战-统一认证平台】第五章 网关篇-自定义缓存Redis

    上篇文章[.NET Core项目实战-统一认证平台]第四章 网关篇-数据库存储配置(2)我们介绍了2种网关配置信息更新的方法和扩展Mysql存储,本篇我们将介绍如何使用Redis来实现网关的所有缓存功 ...

最新文章

  1. Python找出序列中出现最多的元素
  2. 解决Ubuntu双击打开 txt 中文乱码(gedit)
  3. 空调c语言入门自学视频教程,本人大一,自学c语言,想问一下用哪个编程环境比较好啊?...
  4. 20145237第六周学习总结
  5. Java反射基础(一)--Class对象获取
  6. 【LeetCode笔记】剑指 Offer 57- II. 和为 s 的连续正数序列(Java、滑动窗口、二刷)
  7. 百度BCH云服务器SSL证书服务(免费申请流程)- 申请篇
  8. MFC中常见控件的操作
  9. FasterRCNN理解
  10. 无线通信设备安装工程概预算编制_起重设备安装资质承接多大工程
  11. 当显存不够时是否会调用共享GPU内存?
  12. Python 调试Webservice接口
  13. 2022Android春招面试,实战分析
  14. PHP微信公众平台开发高级篇--群发接口
  15. FlexRay总线协议快速入门、深度剖析与应用示例
  16. ai人工智能_药物发现中的人工智能
  17. linux修复fat文件系统,如何修复损坏的FAT32文件系统
  18. 计算机功能室岗位职责,功能室管理人员职责
  19. Android 13 功能和变更列表
  20. WiFi cfg80211

热门文章

  1. 【原创】SM4password算法源代码接口具体解释
  2. SpringBoot集成Redis来实现缓存技术方案
  3. 关于python循环
  4. Android SQLite数据库 SQLiteOpenHelper的操作使用
  5. Linux下svn的部署
  6. C# 如何将List拆分成多个子集合
  7. Nginx开启gzip压缩功能
  8. 《Linux操作系统原理》教学大纲
  9. FLASH+XML:构建简单易更新网站
  10. CCFTF17(上海):认知计算产业化如何落地(知识图谱、智能问答等)