一、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的介绍和合并相关推荐

  1. 风暴数码论坛教程--加入ROOT等文件及方法

    加入ROOT等文件及方法 1.利用厨房进行添加 进入厨房界面 首先,选择第2项,进入如下界面: 我们选择F,完成后我们点enter继续,继续回到主界面 选择3项,出现如下界面: 选择y.完成过后,厨房 ...

  2. 关于合并apk和odex的实践

    目前与合并官方的apk和odex的方法卡住了一段时间,于是我前段时间在百度知道提问了许久,只是还是没人回答,有的也只是一些复制过来的答案,而且不怎么全面,现在写下一篇经过实践整理而来的合并官方apk和 ...

  3. VMware虚拟机去虚拟化完整版教程|永久过强壳VMP、SE壳、GK盾、TMD教程|VMware去虚拟化吾爱汇编论坛教程完整版

    VMware去虚拟化完整版教程|永久过强壳VMP.SE壳.GK盾.TMD|VMware去虚拟化吾爱汇编论坛教程完整版 教程内容: 实际效果:

  4. discuz mysql类_Discuz论坛教程之数据库操作DB类和C::t类介绍

    Discuz论坛教程之数据库操作DB类和C::t类介绍 类定义文件 DB类: 文件\source\class\class_core.php [php]view plaincopy classDB ex ...

  5. linux apk 拆分 odex,APK生成odex,合并odex和apk为完整的apk文件

    Android的ROM中有很多odex文件,相对于APK中的dex文件而言这个odex有什么作用呢? 如果你仔细观察会发现文件名时一一对应的,同时那些对应的apk文件中没有dex文件.这样做可以使其厂 ...

  6. 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). ...

  7. Android手机ROM定制初级教程以及Android系统文件夹结构介绍【转】

    Android手机ROM定制初级教程以及Android系统文件夹结构介绍 一个完整的OM根目录会有以下几个文件夹及文件: data META-IN system boot.img  系统目录说明 1. ...

  8. Xamarin Android教程Android基本知识版本介绍与系统介绍

    Xamarin Android教程Android基本知识版本介绍与系统介绍 Xamarin Android教程Android基本知识版本介绍与系统介绍,开发Andriod有时候不像iOS一样轻松,因为 ...

  9. 区块链教程(二):基础概念介绍

    注:本教程为技术教程,不谈论且不涉及炒作任何数字货币 本系列重点在于以太坊基础知识.以太坊客户端以及以太坊solidity编程,因此博客重点在于以太坊核心知识点的掌握,区块链部分的基础知识可以作为补充 ...

最新文章

  1. seaborn系列 (5) | 柱状图countplot()
  2. ubuntu 18.04安装jdk8和eclipse
  3. 异步调用WebService方式!
  4. cli parser_Java命令行界面(第27部分):cli-parser
  5. 骚操作!他居然同时给谷歌和 Facebook 上班干活
  6. Linux常用命令之:软件安装命令
  7. 实习成长之路:下层应用调不到上层方法怎么办?GoogleGuava事件上报来打配合
  8. 【线性代数】矩阵及其运算
  9. Vivado里程序固化详细教程
  10. 【记忆法】记忆法推荐书
  11. linux环境下,集群中Hadoop版本更换
  12. 吃货在东京 -- 记那段吃不饱的日子 之四 台场的日本拉面
  13. Python爬虫获取网易云歌单封面(带Cookie)
  14. DGZX1564 - 水塔水位
  15. 什么是逻辑地址,什么是物理地址,为什么要进行二者的转换工作?
  16. 新网站对SEO工作内容简介
  17. 获奖团队访谈录|“AI+无线通信”赛道三等奖团队
  18. linux硬盘ro改为rw,RO,RW,ZI 和scatter file详解(转载)
  19. 云宏与英特尔携手发布了基于英特尔®至强®可扩展平台全面升级
  20. 使用电脑时经常遇到问题?来试试这四款小众的实用软件吧

热门文章

  1. C++入门经典-例4.7-变量的作用域
  2. UITableView属性 自己定义UITableViewCell
  3. 关于AVR单片机熔丝位的设置和拯救方法大全 AVR单片机熔丝位的设置和详细的拯救方法...
  4. C# 垃圾回收机制(转)
  5. 《LeetCode力扣练习》第13题 C语言版 (做出来就行,别问我效率。。。。)
  6. python微信好友分析源代码_搞事情了 | 教你用Python分析微信好友信息(内附完整代码)...
  7. python安装pip_Python的pip安装总是失败怎么办?
  8. 上周五 oracle,Oracle 获取上周一到周末日期的查询sql语句
  9. oracle数据库备份方法主要有哪几种,Oracle数据库备份方法有哪三种?
  10. w7系统计算机网络密码是什么,解答win7系统共享弹出Windows安全窗口提示输入网络密码的详细教程...