当前位置: 首页 > news >正文

去除恢复出厂设置中UI文字显示

文章目录

  • 需求
    • 场景
  • 一、代码跟踪与分析
    • 在线文字搜索
    • RK平台本地源码搜索
    • 实际测试验证
    • 代码推理
  • 二、实现方案
  • 三、延伸知识
  • 四、知识总结


需求

需求:去除恢复出厂设置中UI文字显示

场景

Android 相关产品各种方向旋转、强制横竖屏等需求,导致在恢复出厂设置中,部分文字没有显示正常,方向显示异常了。 比如如下图所示:
在这里插入图片描述

一、代码跟踪与分析

既然文字显示出来了,那我们根据文字显示找出具体位置然后屏蔽不就完了呀。

在线文字搜索

Android12在线源码搜索关键字 清除中
在这里插入图片描述

RK平台本地源码搜索

在这里插入图片描述

实际测试验证

无论在线还是本地源码搜索,关键字位置是同一个问题,其中可以看出来 app 位置的肯定不是,因为恢复出厂设置情况下,理论上不会有app 还在运行的,最大可能是 “清除中”

实际测试验证,上面三个地方 通过添加tag,比如111清除中 、222清除中 编译烧录固件发现都不是,并没有按照添加的tag 显示,还是显示 清除中。

代码推理

恢复出厂设置过程中,系统流程肯定在 /bootable/recovery/ 中,在线源码如下:
recovery
在这里插入图片描述

继续看看这个目录相关代码,文件结构,资源文件,如下:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这个不就是动画和资源文件吗? 难道在recovery 中,通过图片里面取文字???

继续反推通过图片找具体位置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

思路其实就是通过反向不断推理,在源码里面找,通过文件名、方法名和注释找到核心代码,最终实现功能。

二、实现方案

通过上面反向推理,最终实现方案,通过屏蔽即可:


修改点:draw_background_locked 方法,绘制Surface 时候,屏蔽掉绘制DrawTextIcon 相关内容//const auto& text_surface = GetCurrentText();//int text_x = (ScreenWidth() - gr_get_width(text_surface)) / 2;//int text_y = GetTextBaseline();//gr_color(255, 255, 255, 255);//DrawTextIcon(text_x, text_y, text_surface);

三、延伸知识

当前场景下需要去除文字显示,对于部分产品可能需要更改文字,这个时候可以参考网上介绍内容处理,更新图片等。

四、知识总结

  • /bootable/recovery 模块资源加载方式,映射到小系统对当前界面实现方式
  • 替换、隐藏文案是实现方式

相关文章:

去除恢复出厂设置中UI文字显示

文章目录 需求场景 一、代码跟踪与分析在线文字搜索RK平台本地源码搜索实际测试验证代码推理 二、实现方案三、延伸知识四、知识总结 需求 需求:去除恢复出厂设置中UI文字显示 场景 Android 相关产品各种方向旋转、强制横竖屏等需求,导致在恢复出厂设…...

《高校教育管理》

《高校教育管理》为中文社会科学引文索引(CSSCI)来源期刊、北大中文核心期刊、RCCSE中国核心学术期刊、人大“复印报刊资料”重要转载来源期刊,是江苏大学主办,中国高等教育管理研究会协办的全国性高等教育管理专业期刊。 ISSN 1…...

全国计算机二级考试C语言篇4——选择题

运算符与表达式 1.赋值的正确写法 赋值操作是一个很常见的操作,但是赋值操作也有一些需要注意的地方。赋值操作是将一个表达式的值赋给一个变量的过程。在C语言中,赋值操作符是""。结合性从右到左,不控制求值顺序。 下面是几种C语言…...

数据结构————哈希表

哈希表(Hash table),也被称为散列表,是一种根据关键值(Key value)而直接进行访问的数据结构。它通过把关键值映射到表中的一个位置来访问记录,从而加快查找的速度。这个映射函数被称为散列函数或…...

element select + tree

element select tree的使用 <template slot"action1" slot-scope"text, record, index"><el-select v-model"record.tagValue" multiple placeholder"请选择":filter-method"(e) > filterTree(e, index)" filt…...

LeetCode之矩阵

36. 有效的数独 class Solution {// 方法 isValidSudoku 接收一个字符二维数组 board&#xff0c;表示数独棋盘&#xff0c;返回是否有效public boolean isValidSudoku(char[][] board) {// 创建三个二维数组来记录每一行、列和子框中数字的出现次数int[][] rows new int[9][…...

Windows文件系统介绍与基本概念解析

1. 引言 1.1 什么是文件系统 文件系统是一种管理和组织计算机存储设备上文件和文件夹的方法。它提供了文件的创建、读取、写入、删除等操作,并负责文件在存储设备上的存储和访问。 在操作系统中,文件系统是一个重要的组成部分,它使得用户可以方便地使用计算机存储设备来存…...

使用 Apache POI 实现 Java Word 模板占位符替换功能

使用 Apache POI 实现 Java Word 模板占位符替换功能 在日常开发中&#xff0c;我们经常会遇到生成 Word 文档的需求&#xff0c;特别是在需要从模板导出 Word 文件时&#xff0c;比如生成合同、报告等。通过使用模板&#xff0c;开发者可以减少重复的工作&#xff0c;将预定义…...

第三届人工智能与智能信息处理国际学术会议(AIIIP 2024)

目录 大会介绍 基本信息 合作单位 主讲嘉宾 会议组委 征文主题 ​ 参会方式 会议日程 中国-天津 | 2024年10月25-27日 | 会议官网&#xff1a;www.iiip.net 大会介绍 第三届人工智能与智能信息处理国际学术会议&#xff08;AIIIP 2024&#xff09;将于202…...

【动手学深度学习】04 数据操作 + 数据预处理(个人向笔记)

数据操作 N维数组是机器学习和神经网络的主要数据结构其中 2-d 矩阵中每一行表示每一行表示一个样本 当维度来到三维的时候则可以表示成一张图片&#xff0c;再加一维就可以变成多张图片&#xff0c;再加一维则可以变成一个视频 访问元素 冒号表示从冒号左边的元素到冒号右…...

本地搭建 Whisper 语音识别模型

Whisper 是由 OpenAI 开发的一款强大的语音识别模型&#xff0c;具有出色的多语言处理能力。搭建和使用 Whisper 模型可以帮助您将音频内容转换为文本&#xff0c;这在语音转写、语音助手、字幕生成等应用中都具有广泛的用途。本指南将对如何在本地环境中搭建 Whisper 语音识别…...

数据集成-缝合一套数据仓库Infra的臆想

一、数据集成当前困境 目前数据集成基础设施建设仅一个单一数据库&#xff0c;无法很好支持上层应用的建设步骤&#xff0c;继续采用当前设施跟随产品的策略&#xff0c;数据产品开发受限巨大&#xff0c;从目前实施的几个产品看&#xff0c;存在以下主要问题&#xff1a; 功能…...

运营有哪几种?

运营又有很多类&#xff0c;分为&#xff1a;内容运营、用户运营、活动运营、产品运营、新媒体运营、社群运营、电商运营、短视频运营 1.内容运营&#xff1a; 做内容提升各类数据&#xff0c;比如内容的数量/浏览数量/互动数传播数等。 适合人群&#xff1a;适合喜欢看文章热…...

Android视频编辑:利用FFmpeg实现高级功能

在移动设备上进行视频编辑的需求日益增长&#xff0c;用户期望能够在智能手机或平板电脑上轻松地编辑视频&#xff0c;以满足社交媒体分享或个人存档的需求。Android平台因其广泛的用户基础和开放的生态系统&#xff0c;成为视频编辑应用的理想选择。FFmpeg&#xff0c;作为一个…...

图片无损缩放PhotoZoom Pro 9.0.2绿色版 +免费赠送PhotoZoom激活优惠代码

PhotoZoom Pro 9.0.2 是一款专业的图片无损缩放软件&#xff0c;该软件采用了 benvista s-spline 独特技术&#xff0c;增强了对图像格式的支持&#xff0c;多处理器支持&#xff0c;GPU 加速&#xff0c;win10和 Photoshop CC 支持。带来一流的数字图形扩展与缩减技术。该软件…...

tekton pipelineresources

PipelineResource 代表着一系列的资源&#xff0c;主要承担作为 Task 的输入或者输出的作用。它有以下几种类型&#xff1a; git&#xff1a;代表一个 git 仓库&#xff0c;包含了需要被构建的源代码。将 git 资源作为 Task 的 Input&#xff0c;会自动 clone 此 git 仓库。pu…...

OFDM系统PAPR算法的MATLAB仿真,对比SLM,PTS以及CAF,对比不同傅里叶变换长度

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、选择映射&#xff08;SLM&#xff09; 4.2 相位截断星座图&#xff08;PTS&#xff09; 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 mat…...

常见概念 -- 光回波损耗

什么是回波损耗 回波损耗&#xff0c;又称为反射损耗&#xff0c;当高速信号进入或退出光纤的某个部分&#xff08;例如光纤连接器&#xff09;&#xff0c;不连续和阻抗不匹配会引起反射&#xff0c;这就是光纤回波损耗。器件的回波损耗Return Loss(RL)是光信号的输入端口的反…...

uni-app环境搭建

目录 一、下载HBuilder X: 二、创建项目 1、通过HBuliderX创建 2、通过vue-cli命令行创建 三、app真机运行 1、真机运行: 2、打包发行 四、微信小程序调试 1、下载微信小程序开发者工具 2、运行项目&#xff1a;运行---> 运行到小程序模拟器----> 微信开发者工…...

数据结构 栈 队列

系统栈&#xff1a; 保护局部变量 函数的形参和返回值 函数的调用关系&#xff08;保护现场&#xff0c;恢复现场操作&#xff0c;遵循先进后出&#xff0c;后进先出&#xff09; 数据结构栈&#xff08;顺序栈&#xff0c;链式栈&#xff09;&#xff1a; 同样遵遵循先进…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构&#xff1a; 传统SMO中LPF会带来相位延迟和幅值衰减&#xff0c;并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF)&#xff0c;可以去除高次谐波&#xff0c;并且不用相位补偿就可以获得一个误差较小的转子位…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋&#xff0c;无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话&#xff0c;配置.bahs_profile后也能解决上下翻页这些&#xff0c;但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...

轻量级Docker管理工具Docker Switchboard

简介 什么是 Docker Switchboard &#xff1f; Docker Switchboard 是一个轻量级的 Web 应用程序&#xff0c;用于管理 Docker 容器。它提供了一个干净、用户友好的界面来启动、停止和监控主机上运行的容器&#xff0c;使其成为本地开发、家庭实验室或小型服务器设置的理想选择…...