zoukankan      html  css  js  c++  java
  • 如何修改Recovery的字符串资源

    前言:在实际的ROM修改中,Recovery的修改还是会经常遇到的,这篇文章主要讲解如何修改Recovery字符串。
     
    首先我们先了解下大概的流程。
    1.screen_ui.cpp 中的ScreenRecoveryUI::Init() 负责加载基本资源信息。
    2.Init()调用
        LoadLocalizedBitmap("installing_text", &backgroundText[INSTALLING_UPDATE]);
        LoadLocalizedBitmap("erasing_text", &backgroundText[ERASING]);
        LoadLocalizedBitmap("no_command_text", &backgroundText[NO_COMMAND]);
        LoadLocalizedBitmap("error_text", &backgroundText[ERROR]);
        分别对应recovery需要用到的四种字符串资源。
    3.LoadLocalizedBitmap 调用res_create_localized_surface
    4.res_create_localized_surface 在minui/resources.c中,其中
     snprintf(resPath, sizeof(resPath)-1, "/res/images/%s.png", name);
     我们可以知道是加载了res/images/目录下的图片资源。
    5.对应res/images/目录即可找到对应的installing_text.png
    6.函数就这样解析图片,然后得到需要的文字资源。
     
    其次才是关键:即如何将文字资源放在png图片中呢?
    秘密就在development ools ecovery_l10n 这个文件夹中。
    1.recovery_l10n就是谷歌提供的制作字符串图片的APK,通过源码下的mmm编译,可以得到RecoveryLocalizer.apk。
    2.打开文件recovery_l10n esvalues-zh-rCNstring.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <resources xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
        <string name="recovery_installing" msgid="7864047928003865598">"正在安装系统更新… 请勿断电"</string>
        <string name="recovery_erasing" msgid="4612809744968710197">"正在清除… 请勿断电"</string>
        <string name="recovery_no_command" msgid="1915703879031023455">"无命令。"</string>
        <string name="recovery_error" msgid="4550265746256727080">"出错了!"</string>
    </resources>
    3.这里就可以看到需要用到的四个字符串,修改成需要的文字。
    4.重新编译后,安装到对应的设备。打开apk,选择相应的字符串,执行Go。
     
    5.通过adb命令既可拿到图片资源了。
    6.拿到资源后,通过执行pngcrush来进行图片处理,因为读取pngcrush处理过的png比普通的png快,且内存小。
    pugcrush -c 0 text_out.png output.png
    至此我们就完成了字符串图片的创建。
    最后,将字符串图片重新放入到bootable ecovery esimage目录下,替换原来的图片,重新编译整个工程即可完成修改了。
  • 相关阅读:
    《JAVA多线程编程核心技术》 笔记:第四章、Lock的使用
    服务器负载粗略估算
    spring事务传播性理解
    BlockingQueue 阻塞队列2
    六大原则
    mycat之schema.xml理解
    mycat分库读写分离原理
    sqlservere连接问题
    java代码添加mysql存储过程,触发器
    Amoeba+Mysql实现读写分离+java连接amoeba
  • 原文地址:https://www.cnblogs.com/jianggest/p/recovery_string.html
Copyright © 2011-2022 走看看