风暴数码论坛教程--apk和odex的介绍和合并
一、apk和odex的介绍和合并
(一)APK介绍
APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
一个APK文件(压缩文件打开可以看到)结构为:
mete-INF Jar文件中常可以看到
res 存放资源文件的目录
AndroidManifest.xml 程序全局配置文件
classes.dex Dalvik字节码
resources.arsc 编译后的二进制资源文件
总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的 Windows Gadgets或者说WPF也采用了这种构架方式。
在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。最终我们平时安装的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。
(二)、odex文件介绍
细心的网友可能发现Android的ROM中有很多odex文件,相对于 APK中的dex文件而言这个odex有什么作用呢?如果你仔细观察会发现文件名时一一对应的,同时那些对应的apk文件中没有dex文件。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无法正常导出使用。(文/Android开发网)
很多网友可能想到的是合并odex和apk变成apk中包含dex文件的,这样合并后最终apk文件安装在/data/中,而rom存放时在 /system/bin中,所以最终导致了用户可装在Android手机中的软件会变少,占用系统空间。
APK生成 odex文件方法:
1.编译开源GIT上的build/tools /dexpreopt/dexopt-wrapper这个,使用dexopt-wrapper即可,操作步骤
2.将dexopt-wrapper放到/data/local目录中,使用adb shell执行linux命令行,使用cd命令进入/data/local目录,
cd /data/local./dexopt-wrapper android123.apk android123.odex
(二)合并odex和
少dex的apk 为完整的apk文件
需要用到的工具是smali,一个开源的java处理软件: http://code.google.com/p/smali/downloads/list
1.下载的baksmali和 smali的jar文件到工作目录
2.把ROM里面的core.odex, ext.odex, framework.odex, android.policy.odex, services.odex这5个文件也放在同一目录(也可以放在别的目录,通过设置BOOTCLASSPATH指定,默认就是当前目录)。
例:以teeter为例子 (HTC一些Android常常会内置),ROM里面拿出来的可能是2个文件,teeter.apk + teeter.odex。
1、分解odex文件:
java -jar baksmali-1.2.1.jar -x teeter.odex
如果没其他问题,会在工作目录生成一个out的目录,里面是分解出来的一些文件,我们在此不深究这些文件的作用。
2、把分解得到的文件变成classes.dex:java -Xmx512M -jar smali-1.2.1.jar out -o classes.dex,这样得到了一个有用的classes.dex文件
3、用WinZip或者WinRAR打开teeter.apk文件,把这个classes.dex 放进去
4、最后再用signapk把最新得到的这个包含classes.dex的apk重新签署一下 (Auto Sign签名工具往期的文章里有下载),就生成一个可以安装的单独APK程序了。
5、签名完成后即可安装使用了
(三)、利用厨房进行合并
首先打开厨房界面
选择0进行高级选项
选择11对工作目录中的deodex进行合并。出现如下界面
我们选择b,对所有文件进行合并。然后会出现合并过程界面如下:
以上就是厨房合并的全过程了。
此列表以2.36为基础,包含了大部分,仅供参考,(可删)表示可以进行选择性删除,当然还有些内容也可以删,根据自己情况而定
AccountSyncManager.apk 账户同步管理器
Adobereader.apk 阅读器(可删)
Amazonmap3.apk 音乐程序(可删)
ApplicationsProvider.apk 应用程序提供商
AppSharing.apk 应用程序分享(可删)
Blackboard.apk 黑板皮肤(可删)
Bluetooth.apk 蓝牙
BrcmBluetoothServices.apk 蓝牙服务
Browser.apk 自带浏览器(可删)
Calculator.apk 计算器
Calendar.apk 日历程序
CalendarProvider.apk 日历服务提供商
CertInstaller.apk 证书安装程序
CheckinProvider.apk 签入服务
com.htc.FMRadioWidget.apk 收音机桌面插件
com.htc.FriendStreamWidget.apk FriendStream社交软件插件(可删)
Com.htc.musicwidget.apk 音乐插件
Com.htc.stockwidget.apk 股票插件(可删)
Com.htc.trendswidget.apk trend插件(可删)
Com.htc. twitterwidget.apk Twitte插件 (可删)
Com.htc.weatherwidget.apk 天气插件
com.htc.htcmsgwidgets.apk 信息插件
ContactsProvider.apk 联系人提供商
CSPeopleSyncService.apk HTC的sense账户同步服务(可删)
CustomizationSettingsProvider.apk 个性化设置提供商
CustomizationSetup.apk 个性化设置
DCSStock.apk 股票数据控制服务(可删)
DefaultContainerService.apk 程序包访问帮助服务
DFPI.apk--demoflopackageinstaller 安装演示
DownloadProvider.apk 下载程序管理包
DownloadProviderUi.apk 我的下载程序
DrmProvider.apk 数字版权保护存储
EReader.apk EReader阅读软件 就是翻页像翻书一样的读书软件(可删)
FilePicker.apk 文件选择器
Flashlight.apk 手电筒
FlashLitePlugin.apk flash简化插件(可删)
FriendStream.apk 同名社交软件(可删)
GoogleBackupTransport.apk 谷歌备份
GoogleCalendarSyncAdapter.apk 谷歌日历同步
GoogleContactsSyncAdapter.apk 谷歌联系人同步
GooglePartnerSetup.apk 谷歌合作伙伴设置(可删)
Googlequicksearchbox 快速搜索箱(可删)
GoogleServicesFramework.apk 谷歌框架服务
GSD.apk (可删)
HTC_IME.apk 自带输入法 删除后联系人将无法用拼音检索
HtcAddProgramWidget.apk 插件添加
HTCAlbum.apk 相册
HtcAutoRotateWidget.apk 自动旋屏插件
HtcBackgroundDataWidget.apk 背景数据插件
htcbookmarkwidget.apk 书签插件(可删)
HtcCalculatorWidget.apk 计算器插件
htccalendarwidgets.apk 日历插件
HTCCamera.apk 相机
HtcClockWidget.apk 时钟插件
HtcCompressViewer.apk 存档查看器
HtcConnectedMedia.apk 多媒体连接
HtcContacts.apk 联系人程序
htccontactwidgets.apk 联系人插件
HtcDataRoamingWidget.apk 数据漫游插件
HtcDataStripWidget.apk 数据控制台插件
HtcDialer.apk 拨号器
HtcDirect.apk HTC的HUB(可删)
HtcDirectDownloadsProvider.apk HUB下载提供(可删)
HtcDLNAMiddleLayer.apk WIFI相关的DLNA协议
HtcDMC.apk
HtcFacebook.apk facebook(可删)
Htcfeedback.apk HTC反馈 (可删)
HtcFMRadio.apk 收音机
HtcGreader.apk 新闻(可删)
HtcGreaderWidget.apk 新闻插件(可删)
HtcHubSyncProvider.apk HTC的HUB同步提供商(可删)
HtcImageWallpaper.apk 幻灯片壁纸
HtcLaputa.apk 自带定位导航(可删)
HtcLaputaInstaller.apk 自带导航的安装器(可删)
HtcLocationPicker.apk 位置标记定位(可删)
HtcLocationService.apk 位置服务程序(可删)
HtcLocationsWidget.apk 位置服务桌面插件(可删)
HtcLocationsWidgetSettings.apk 位置服务设置插件(可删)
HtcLockScreen.apk 锁屏程序
htcmailwidgets.apk 邮箱插件
HtcMessageCS.apk 短信程序
HtcMessageProvider.apk 短信服务提供商
HtcMessageUploader.apk 短信上传程序
HtcMusic.apk HTC 音乐
HtcMusicMarkedItems.apk 音乐标记(可删)
HtcPhotoWidget.apk 相册插件
HtcPowerStripWidget.apk 电源控制台插件
HtcProfileWidget.apk 情景模式切换插件
HtcRingtoneTrimmer.apk 铃声剪辑器(可删)
HtcRingtoneWidget.apk 铃声插件
HtcScreenBrightnessWidget.apk 亮度插件
HtcScreenTimeoutWidget.apk 屏幕休眠时间插件
htcsettingwidgets.apk 设置的桌面插件
HTCSetupWizard.apk 设置向导
HtcSoundRecorder.apk 录音机
HtcSoundSetDownloadManager.apk 音效集
HtcStreamPlayer.apk 流媒体播放器
Htcsyncwidget.apk 同步插件
HtcTwitter.apk Twitter(可删)
HtcWeatherWallpaper.apk 天气壁纸
HTMLViewer.apk HTML查看器(可删)
LiveWallpapers.apk 动态壁纸程序
LiveWallpapersPicker.apk 动态壁纸选择器
MagicSmokeWallpapers.apk 魔幻烟雾动态壁纸(可删)
Mail.apk 邮件程序
MarketUpdater.apk 市场升级管理器
MediaProvider.apk 多媒体服务提供商
MediaUploader.apk 多媒体上传程序
Mode10Wallpapers.apk HTC自带的sense标志性五彩动态壁纸
MyHTC.apk MYHTC(可删)
NetworkLocation.apk 网络位置
OnlineAssetDetails.apk HTC在线(可删)
PackageInstaller.apk 程序安装器
PCSCII.apk 连接到电脑同步用(USB、充电等)
Phone.apk 电话主程序
PicoTts.apk 文字语音转换引擎
PluginManager.apk 插件管理器
QuickLookup.apk 快速查阅程序
Quickoffice.apk OFFICE办公软件
restartapp.apk
Rosie.apk Sense相关
Settings.apk 设置
SettingsProvider.apk 设置存储服务
SetupWizard.apk 谷歌设置向导
SkinPicker.apk 皮肤选择器
Slate 金属皮肤
SoundRecorder.apk 录音
Soundhound_freemium.apk 声音相关(可删)
Stk.apk SIM卡程序
Stock.apk 股票
Street 谷歌街景(可删)
SystemUI.apk 状态栏
Talk.apk 谷歌talk(可删)
teeter.apk 重力球游戏(可删)
TelephonyProvider.apk 拨号记录存储服务
transferdata.apk 传输数据
TtsService.apk TTS语音服务
Updater.apk 系统更新升级程序(可删)
UpgradeSetup.apk 升级设置
UploadProvider.apk 上传服务支持
UserDictionaryProvider.apk 用户词典提供商
Vending.apk 电子市场 (可删)
VisualizationWallpapers.apk 频谱动态壁纸
Voicesearch.apk 语音搜索
Vpnservices.apk VPN服务
Weather.apk 天气主程序
WeatherAgentService.apk 天气代理服务程序
WeatherProvider.apk 天气程序提供商
WeatherSyncProvider.apk 天气同步提供商
WifiRouter.apk wifi热点
Wood.apk 木质皮肤(可删)
WorldClock.apk 世界时钟程序
youtube.apk youtube软件(可删)
转载于:https://www.cnblogs.com/crid/archive/2012/06/03/5172569.html
风暴数码论坛教程--apk和odex的介绍和合并相关推荐
- 风暴数码论坛教程--加入ROOT等文件及方法
加入ROOT等文件及方法 1.利用厨房进行添加 进入厨房界面 首先,选择第2项,进入如下界面: 我们选择F,完成后我们点enter继续,继续回到主界面 选择3项,出现如下界面: 选择y.完成过后,厨房 ...
- 关于合并apk和odex的实践
目前与合并官方的apk和odex的方法卡住了一段时间,于是我前段时间在百度知道提问了许久,只是还是没人回答,有的也只是一些复制过来的答案,而且不怎么全面,现在写下一篇经过实践整理而来的合并官方apk和 ...
- VMware虚拟机去虚拟化完整版教程|永久过强壳VMP、SE壳、GK盾、TMD教程|VMware去虚拟化吾爱汇编论坛教程完整版
VMware去虚拟化完整版教程|永久过强壳VMP.SE壳.GK盾.TMD|VMware去虚拟化吾爱汇编论坛教程完整版 教程内容: 实际效果:
- discuz mysql类_Discuz论坛教程之数据库操作DB类和C::t类介绍
Discuz论坛教程之数据库操作DB类和C::t类介绍 类定义文件 DB类: 文件\source\class\class_core.php [php]view plaincopy classDB ex ...
- linux apk 拆分 odex,APK生成odex,合并odex和apk为完整的apk文件
Android的ROM中有很多odex文件,相对于APK中的dex文件而言这个odex有什么作用呢? 如果你仔细观察会发现文件名时一一对应的,同时那些对应的apk文件中没有dex文件.这样做可以使其厂 ...
- linux apk 拆分 odex,android平台下,apk、jar、dex、odex、vdex、art文件相互转换,编译和反编译...
apk.jar.dex.odex.vdex相互转换java 1. ? to jar 1.1 odex to jar 1.2 dex to jar 1.3 apk to jar 输出结果可能有损 1). ...
- Android手机ROM定制初级教程以及Android系统文件夹结构介绍【转】
Android手机ROM定制初级教程以及Android系统文件夹结构介绍 一个完整的OM根目录会有以下几个文件夹及文件: data META-IN system boot.img 系统目录说明 1. ...
- Xamarin Android教程Android基本知识版本介绍与系统介绍
Xamarin Android教程Android基本知识版本介绍与系统介绍 Xamarin Android教程Android基本知识版本介绍与系统介绍,开发Andriod有时候不像iOS一样轻松,因为 ...
- 区块链教程(二):基础概念介绍
注:本教程为技术教程,不谈论且不涉及炒作任何数字货币 本系列重点在于以太坊基础知识.以太坊客户端以及以太坊solidity编程,因此博客重点在于以太坊核心知识点的掌握,区块链部分的基础知识可以作为补充 ...
最新文章
- seaborn系列 (5) | 柱状图countplot()
- ubuntu 18.04安装jdk8和eclipse
- 异步调用WebService方式!
- cli parser_Java命令行界面(第27部分):cli-parser
- 骚操作!他居然同时给谷歌和 Facebook 上班干活
- Linux常用命令之:软件安装命令
- 实习成长之路:下层应用调不到上层方法怎么办?GoogleGuava事件上报来打配合
- 【线性代数】矩阵及其运算
- Vivado里程序固化详细教程
- 【记忆法】记忆法推荐书
- linux环境下,集群中Hadoop版本更换
- 吃货在东京 -- 记那段吃不饱的日子 之四 台场的日本拉面
- Python爬虫获取网易云歌单封面(带Cookie)
- DGZX1564 - 水塔水位
- 什么是逻辑地址,什么是物理地址,为什么要进行二者的转换工作?
- 新网站对SEO工作内容简介
- 获奖团队访谈录|“AI+无线通信”赛道三等奖团队
- linux硬盘ro改为rw,RO,RW,ZI 和scatter file详解(转载)
- 云宏与英特尔携手发布了基于英特尔®至强®可扩展平台全面升级
- 使用电脑时经常遇到问题?来试试这四款小众的实用软件吧
热门文章
- C++入门经典-例4.7-变量的作用域
- UITableView属性 自己定义UITableViewCell
- 关于AVR单片机熔丝位的设置和拯救方法大全 AVR单片机熔丝位的设置和详细的拯救方法...
- C# 垃圾回收机制(转)
- 《LeetCode力扣练习》第13题 C语言版 (做出来就行,别问我效率。。。。)
- python微信好友分析源代码_搞事情了 | 教你用Python分析微信好友信息(内附完整代码)...
- python安装pip_Python的pip安装总是失败怎么办?
- 上周五 oracle,Oracle 获取上周一到周末日期的查询sql语句
- oracle数据库备份方法主要有哪几种,Oracle数据库备份方法有哪三种?
- w7系统计算机网络密码是什么,解答win7系统共享弹出Windows安全窗口提示输入网络密码的详细教程...