本帖最后由 好奇害死猫咪啊 于 2017-5-6 21:48 编辑

本教程为长期更新贴,有问题请及时反馈。

如有更新请恕不另行通知。

【前言】

闲来无事水一贴。。。

今天写个教程吧,反编译 SystemUI 实现状态栏时钟居中。其实说实话本来对华为靠右边的时间不怎么介意的,可一位朋友说什么也想换成类似 iPhone 的居中式,甚至不惜去刷XP框架,装重力工具箱。。当然了,结果大家可能已经想到了,首先是重力工具箱对我大华为的 EMUI 支持不佳,其次是XP框架对华为支持不佳,最最重要的是,暂时没有安卓7.0的框架……吼吼,悲剧了哇~~~前几天突然想起这件事,就打算自己实践试试,备份在手,天下无忧……大不了重新刷机嘛~~后来居然成功了,激动~~

先来张效果图……

Screenshot_2017-03-31-07-34-27.png (932.89 KB, 下载次数: 44)

2017-3-31 13:00 上传

好了,现在正式开始……

【工具】

ApkTools工具包,ADB工具包(也可以用RE文件管理器,不过我更喜欢在电脑端操作,方便),一台已经装好 Java 并设置好环境变量的电脑,一台已经刷入了第三方rec的手机,啊对了,

仅测试了EMUI4.0,5.0的请勿测试!!

【背景知识】

在目前主流的安卓系统中,状态栏的显示是由 /system/priv-app/SystemUI.apk 控制的。因此我们只需要反编译它,修改控制状态栏的布局文件就可以了,全程不需要修改任何 smali 代码。因此理论上不需要对 SystemUI.apk 进行 deodex 处理,不过笔者使用的是已经 deodex 的 apk。尽管教程比较简单,但最好还是有一些关于 apk 的知识。

【测试机型】

Honor 7i 电信版 Android 6.0 EMUI 4.0.2

Windows 10 家庭版

【教程】

现在总结一下大致的思路吧~~~

1. 电脑装好 Java. 这一点不用我说了吧,教程在网上一抓一大把。下载 JDK 时要选择与电脑匹配的,配饰环境变量的时候要仔细些。当打开命令提示符,输入 Javac ,有一大串字符输出的时候,就可以了。否则,重复第一步……

2. 利用 Apktools 工具包。里面的工具已经更新过了。说到这里不得不吐个槽,现在在主流的刷机网站上能找到的工具基本上都是过时的,笔者的这个 Apktools 的更新时间居然是 2012年12月20日!!!!差评!无奈,幸亏笔者是老司机,平时有储备……咳咳,更新 aapt.exe ,更新 Apktools,更新了使用脚本……好吧,跑偏了。

3. 提取系统的 framework-res.apk、framework-res-hwext.apk 和 SystemUI.apk。你可以使用 RE 文件管理器复制到手机存储在导出到电脑。笔者直接利用 adb 命令导出。建议你将 ADB 工具包内的文件全部解压到 C 盘,WINDOWS 文件夹下的 System32 文件夹,这样在任何目录下都能使用 ADB 命令。然后桌面上不选择任何内容,按住 Shift 键同时鼠标右键,选择 “在此处打开命令窗口”。之后我们的一些操作都是在命令行下完成,因此最好不要关闭。使用以下命令拉取文件到电脑:

adb pull /system/framework/framework-res.apk

adb pull /system/framework/framework-res-hwext.apk

adb pull /system/priv-app/SystemUI/SystemUI.apk

要注意,手机要打开 USB 调试。而且严格区分大小写。

4. 反编译 SystemUI.apk ,找到状态栏的布局文件,然后修改一下即可

5. 回编译。并将回编译后的 Apk 文件中的 resources.arsc 和 status_bar.xml 文件 替换掉原文件本身内的相应文件。

6. 手机重启到rec,将修改后的 SystemUI.apk 推到手机,重启。至此,全部步骤完成。

然而,然而,然而!重要的事情说三遍!考虑到太多的篇幅会让小白同志们看到不耐烦,本人特地写了一个一键程序!!!!!!!!!小白专属,一键搞定!!鼓掌撒花!

【使用截图】

1.PNG (30.85 KB, 下载次数: 18)

2017-3-31 13:00 上传

2.PNG (28.05 KB, 下载次数: 15)

2017-3-31 13:00 上传

3.png (31.96 KB, 下载次数: 21)

2017-3-31 13:00 上传

工具的使用也是极其简单的,下载之后是一个压缩包,解压全部内容之后放到桌面,点击里面的 “开始.exe”,再按照步骤就可以了。

【注意事项】

1.  请严格按照工具内的步骤执行,过程中不要随便对手机和电脑进行操作,如果遇到工具中提示“完成后按任意键继续”的字样,请一定要完成后再按任意键继续!不要关闭工具窗口,只要最小化就行了。

2. 仅测试了 EMUI 4.0.2 版本,成功!考虑到反编译工具的有效性,EMUI5.0的请勿测试!

3. 工具内提供了作者的联系方式,如有问题请及时反馈。本帖为不定期更新贴,有了反馈后,作者也会在第一时间进行修复 bug 与更新。

4. 任何工具和教程都不可能百分百成功!尤其是此类修改系统文件的。建议做好备份。

5. 本人对不正确使用本工具从而造成的各种后果不负责任。

6. 您可以向作者索要源代码,您也可以对其进行任意形式的修改与再发布。不过请您注明原作者信息。

7. 转载请注明出处。最终解释权归原作者所有。

【工具下载】

( 内含Apktools工具,你只要安装好 Java ,准备好一个好用的文本编辑器就可以了 )

文件名称: Tools_StatusBarTimeCenter_EMUI4.0.2_v1.0_2017.3.31

文件格式:zip

文件大小:9.10MB

文件下载:

游客,如果您要查看本帖隐藏内容请回复

反编译Android将状态栏高度,反编译SystemUI.apk 实现状态栏时间居中相关推荐

  1. android源码下载与编译,Android源码下载并编译

    Android源代码下载与编译 - 2020 1.下载repo工具 到清华mirror下载repo curl https://mirrors.tuna.tsinghua.edu.cn/git/git- ...

  2. ubuntu 16.04 编译android,Ubuntu 16.04 64bit 编译 Android 4.4 源码

    1.获取Android源码 (1)下载repo 在用户目录下创建一个bin文件夹来存放repo,并把该路径设置到环境变量中mkdir ~/binPATH=~/bin:$PATH 下载repo脚本cur ...

  3. libusb android 编译,Android如何对libusb进行编译和使用

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 最近项目中对usb进行使用的场景比较多,了解到libusb是比较出名的usb跨平台方案,学习libusb可以对andro ...

  4. mac下编译android下libaac,Mac 下编译SOX for android (.a静态库)

    1.下载 sox源码: git clone https://git.code.sf.net/p/sox/code sox-code 3.配置NDK环境变量(如果有不熟悉mac下配置环境变量的请参考Ma ...

  5. 16.04编译android 7.0,ubuntu16.04 编译Android5.1报错

    hi kylin team, 我使用 ubuntu16.04 构建 android 编译环境后编译 android5.1 时出现如下报错.请向开发团队反馈看能否给出解决方案,谢谢! 当我使用 ubun ...

  6. 编译android 一加,手机内核编译教程(一加6安卓9为例实战)

    前人栽树后人乘凉- 1.同步代码啦 git clone https://github.com/flar2/OnePlus6.git -b ElementalX-3.00 2.交叉编译工具链下载 解压到 ...

  7. rk3288编译android,RK3288 源码编译Android 7.1.2 自动编译

    接着上一篇文章,我们写一个shell脚本. 实现自动编译. #/bin/bash #Test for auto compile Android7.1.2 source code echo " ...

  8. android 4.4 源码编译,Android 4.4源码编译过程

    Android源码下载完后的目录如下: 整个代码的大小为:25.559GB. 一.构建系统 如下用于构建Android源码树的指令应用于所有的代码分支,包括master分支.喎?http://www. ...

  9. android 不通过数据线打印日志_人人都可写代码-Android零基础编程-开发调试、APK编译04...

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,讲解Android开发中如何调试代码程序,开发完后如何打包成可发布的apk文件. 开发调试 在开发中,难免我们会遇到BUG,快速定位问 ...

最新文章

  1. 如何将代码优雅的放在WORD文档中?
  2. 5G + 边缘计算系列文章
  3. 查看字符集 oracle
  4. query判断值是否为空,针对前台提交数据的校验
  5. 成功解决 raise XGBoostError(_LIB.XGBGetLastError()) xgboost.core.DMatrix/Booster has not been intialized
  6. [华为机试练习题]5.IP地址推断有效性
  7. mysql 主从优点_MySql主从配置实践及其优势浅谈
  8. 一步一步封装自己的HtmlHelper组件:BootstrapHelper
  9. 【最大流】牛棚安排(jzoj 1259)
  10. CPU占用率是什么?
  11. Pickle Finance:BAC-DAI Pickle Jar将在迁移到BAS v2后更新
  12. SAP License:SAP学习之COPP
  13. 计算机辅助教学:多媒体课件制作教程,多媒体课件制作5步曲!
  14. 【.NET6+WPF】WPF使用prism框架+Unity IOC容器实现MVVM双向绑定和依赖注入
  15. Linux查看最后一页日志,linux常用查看文件或日志命令
  16. SWFUpload使用指南
  17. linux如何新增dwployop用户,Linux(Centos)快速搭建SVN
  18. php微信 api,PHP微信API接口类
  19. oracle常见语句(转载)
  20. 爬取百度地图店家信息

热门文章

  1. [黑金原创教程][连载][iBoard 电子学堂][第八卷 设计任意波发生器]第三篇 直接数字合成(DDS)原理...
  2. 配置×××服务器使用L2TP/IPSEC协议
  3. android http封装类,HTTP封装类 工具类 For Android
  4. python函数的四个特点_Python面向对象三大特征之封
  5. java反射创建带参数对象_反射 Java反射对象创建 - 闪电教程JSRUN
  6. iOS环境,Appium不支持driver.current_activity等操作
  7. python打包及支持pip安装
  8. 人名和成绩一起排序_excel中怎么让人名和他的成绩一起排序
  9. 机器学习实战——线性回归和局部加权线性回归(含python中复制的四种情形!)
  10. c语言基本数据类型1,1、C语言基本数据类型