最近想看一下华为EMUI里面的某些系统APK是如何实现的。

如何获取系统APK呢?

有两种方式:

1.安装豌豆荚,豌豆荚里有一个应用管理的功能,可以查看手机里的所有应用,包括系统应用。

可以使用该功能导出系统应用APK。

2.解包华为UPDATE.APP

(1)到华为EMUI官网下载相应的系统安装包UPDATE.APP

(2)到华为花粉俱乐部论坛中,搜索HuaweiUpdateExtractor,当前能找到的最新版本是0.9.9.3

目前使用该版本一般都能解包成功。

解包成功后,得到很多img文件。

系统源码主要在SYSTEM.img中,下一步就是如何解包img文件。

(3)用蘑菇ROM助手解包img

通过蘑菇ROM助手的IMG提取功能,但是有些img无法解包,比如RECOVERY.img,不知道是什么原因。

----------------------------------------------------分割线--------------------------------------------------------------------------

解包SYSTEM.img成功后,就可以看到系统的内容。

app路径下有所有系统应用,找到相应的APK,进行反编译即可看到源码。

APK反编译方法有很多,此篇不进行赘述。

APK第一步反编译后只能得到smali文件,若要查看java文件,可以借助Smali2Java工具,但是这个工具已经很久没有提供支持,不一定能转换成功。

懂Smali语法后,可以直接查看Smali文件,也能理解APK的实现细节。

--------------------------------------------------分割线----------------------------------------------------------------------------

今天解包EMUI5.1的安装包后发现,所有系统应用都进行了odex化,即每个应用都分为odex和apk文件,如果直接反编译apk文件,只能得到资源文件,

为什么odex化?可以参考这篇文章:揭秘ODEX——有ODEX版ROM与无ODEX版ROM区别 
据说这样系统升级时第一次启动速度会加快。

反编译odex可以用baksmali,但是很遗憾,今天下载最新版本baksmali-2.1.2,使用时出现:Unsupported oat version:45错误,

反编译无法进行,到官网查看后发现:

也就是说目前不支持45版本。暂时没有找到解决办法。

如何查看华为EMUI系统APK源码?的更多相关文章

  1. 查看安卓APK源码破解

    原文:查看安卓APK源码破解 工具准备: <1>.android4me的AXMLPrinter2工具 <2>dex2jar <3>jd-gui 工具下载:http: ...

  2. centos 6x系统下源码安装mysql操作记录

    在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配.可以通过源 ...

  3. 分布式任务调度系统xxl-job源码探究(一、客户端)

    前面讲了xxl-job的搭建,现在来粗略的解析下该分布式调度系统的源码,先来客户点代码 客户端源码 客户端开启的时候会向服务中心进行注册,其实现用的是jetty连接,且每隔半分钟会发送一次心跳,来告诉 ...

  4. Centos6 系统下源码方式安装Mysql 记录

    在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配. #### ...

  5. Nagios监控系统部署(源码)(四)

    Nagios监控系统部署(源码)   1. 概述2. 部署Nagios2.1 创建Nagios用户组2.2 下载Nagios和Nagios-plugin源码2.3 编译安装3. 部署Nagios-pl ...

  6. 驾照理论模拟考试系统Android源码下载

    ‍‍‍驾照理论模拟考试系统Android源码下载 <ignore_js_op> 9.png (55.77 KB, 下载次数: 0) <ignore_js_op> 10.png ...

  7. eclipse中无法查看引用的jar包源码

    本文来源:http://blog.csdn.NET/zljjava/article/details/7545270(这篇博客也是转载的,向最原始的作者致敬) 1.下载JAD jad官方地址的官方下载地 ...

  8. Android系统拍照源码

    个人对于Android系统拍照的一些总结:一种自定义图片拍照路径 ,另一种直接利用Android拍照后经过处理的缩略图 特别注意第一种方式需要增加SDK读写权限: <uses-permissio ...

  9. 【精】EOS智能合约:system系统合约源码分析

    系统合约在链启动阶段就会被部署,是因为系统合约赋予了EOS链资源.命名拍卖.基础数据准备.生产者信息.投票等能力.本篇文章将会从源码角度详细研究system合约. 关键字:EOS,eosio.syst ...

随机推荐

  1. 【Alpha阶段】第八次Scrum例会

    会议信息 时间:2016.11.01 21:30 时长:60min 地点:大运村1号公寓5楼楼道 类型:日常Scrum会议 NXT:2016.11.03 21:30 个人任务报告 姓名 今日已完成Is ...

  2. linux下svn 搭建

    linux 下SVN搭建加自动提交更新到指定目录一.安装#yum install subversion       yum安装SVN#mkdir -p /opt/svn/repos       创建s ...

  3. POJ3208:Apocalypse Someday

    传送门 很神奇的一道题,正解是AC自动机+数位DP,个人感觉POPOQQQ大爷的方法更方便理解. 按照一般套路,先搞个DP预处理,设$f[i][0/1/2/3]$分别表示对于$i$位数,其中有多少个前 ...

  4. linux中运维相关命令

    1.awk 可以参考:http://www.itshouce.com.cn/linux/linux-awk.html 1.1 常见语法 cat test.txt | awk 'BEGIN{print ...

  5. spring--学习之IOC DI

    2.1.1  IoC是什么 Ioc-Inversion of Control,即"控制反转",不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器 ...

  6. npm run-script

    package.json "scripts": { "start": "electron .", "package": ...

  7. QT 的下载地址

    http://blog.csdn.net/friendan/article/details/44873347

  8. HTML教程

    HTML文档可以包含的内容 通过不同的标签,HTML文档可以包含不同的内容,比如文本,链接,图片,列表,表格,表单,框架等. 文本 HTML对文本的支持是最丰富的,你可以设置不同级别的标题,分段和换行 ...

  9. 面试题目——《剑指Offer》

    1.把一个字符串转换成整数——<剑指Offer>P29 2.求链表中的倒数第k个结点——<剑指Offer>P30 3.实现Singleton模式——<剑指Offer> ...

  10. Java线程操作方法

    取得和设置线程名称 //================================================= // File Name : Thread_demo //--------- ...