风暴数码论坛教程--apk和odex的介绍和合并

一、apkodex的介绍和合并

(一)APK介绍

APKAndroid Package的缩写,即Android安装包。APK是类似Symbian SisSisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。

APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,DexDalvik 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文件介绍

细心的网友可能发现AndroidROM中有很多odex文件,相对于 APK中的dex文件而言这个odex有什么作用呢?如果你仔细观察会发现文件名时一一对应的,同时那些对应的apk文件中没有dex文件。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无法正常导出使用。(文/Android开发网)

很多网友可能想到的是合并odexapk变成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
dexapk 为完整的apk文件

需要用到的工具是smali,一个开源的java处理软件: http://code.google.com/p/smali/downloads/list

1.下载的baksmali smalijar文件到工作目录

2.ROM里面的core.odex, ext.odex, framework.odex, android.policy.odex, services.odex5个文件也放在同一目录(也可以放在别的目录,通过设置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.dexjava -Xmx512M -jar smali-1.2.1.jar out -o classes.dex,这样得到了一个有用的classes.dex文件

3、用WinZip或者WinRAR打开teeter.apk文件,把这个classes.dex 放进去

4、最后再用signapk把最新得到的这个包含classes.dexapk重新签署一下 (Auto Sign签名工具往期的文章里有下载),就生成一个可以安装的单独APK程序了。

5、签名完成后即可安装使用了



(三)、利用厨房进行合并

首先打开厨房界面

clip_image001

 

选择0进行高级选项

clip_image002



选择11对工作目录中的deodex进行合并。出现如下界面


clip_image003

我们选择b,对所有文件进行合并。然后会出现合并过程界面如下:


clip_image004

以上就是厨房合并的全过程了。

 

此列表以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                       HTCsense账户同步服务(可删)

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                                          HTCHUB(可删)

HtcDirectDownloadsProvider.apk              HUB下载提供(可删)

HtcDLNAMiddleLayer.apk                      WIFI相关的DLNA协议

HtcDMC.apk                                           

HtcFacebook.apk                       facebook(可删)

Htcfeedback.apk                            HTC反馈 (可删)                               

HtcFMRadio.apk                                     收音机

HtcGreader.apk                                       新闻(可删)

HtcGreaderWidget.apk                         新闻插件(可删)

HtcHubSyncProvider.apk                        HTCHUB同步提供商(可删)
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软件(可删)

posted @ 2012-06-03 22:13  crid  阅读(1041)  评论(0编辑  收藏  举报