odex轉dex和重新打包apk
ODEX是安卓上的應用程式apk中提取出來的可執行檔案,是通過apk安裝包的中的dex優化過的,再把apk包裡的dex檔案刪除。
這樣做可以加快軟體的啟動速度,預先提取,減少對RAM的佔用,因為沒有odex的話,系統要從apk包中提取dex再執行。
Odex化後系統啟動和程式執行速度大大提高,穩定性不變。因此推薦做Odex化。
一般來說官方rom都是odex化的rom(含Odex檔案),所以要從這中ROM中提取apk需要將odex轉成dex。
下載軟體工具:
現在我們要對CardManager.odex進行反編譯,以CardManager.odex為例。
1:java -jar baksmali-1.3.2.jar -a 12
這時候出現問題:
Error occured while loading boot class path files. Aborting. org.jf.dexlib.Util.ExceptionWithContext: Cannot locate boot class path file bouncycastle.odex at org.jf.dexlib.Code.Analysis.ClassPath.loadBootClassPath(ClassPath.java:237) at org.jf.dexlib.Code.Analysis.ClassPath.initClassPath(ClassPath.java:145) at org.jf.dexlib.Code.Analysis.ClassPath.InitializeClassPathFromOdex(ClassPath.java:110) at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:96) at org.jf.baksmali.main.main(main.java:278)這是由於缺少core.odex, ext.odex, framework.odex, android.policy.odex, services.odex, bouncycastle.odex, core-junit.odex, 這7個檔案的問題,將framework下的這7個odex檔案一併考到同級目錄下,在執行命令會生成一個out資料夾,裡面的檔案以.smali結尾
2:生成 classes.dex檔案
執行 java -jar smali-1.3.2.jar out/ -o classes.dex
反編譯framework.odex
java -Xmx512m -jar baksmali-1.3.2.jar --api-level 12 -c:core.jar:bouncycastle.jar:ext.jar:framework.jar:android.policy.jar:services.jar:core-junit.jar -d framework/ -x framework.odex
重新打包
- 首先,準備工具
- apktool apk_manager , 點這裡下載
- zip 的 管理工具 ,這個 ubuntu 底下預設有了。
- jdk 的 jarsigner , 我這裡路徑為 /home/nxliao/tool/android/jvm/java/jdk1.6.0_25/bin/jarsigner
- android sdk 的 debug.keystore ,在ubuntu下為 ~/.android/debug.keystore
- 準備實驗物件
- Fishing Joy , 點這裡下載
- 改裝
- 用 zip 管理工具開啟這個 apk,刪除裡面的 META-INF 目錄
- 用 apktool 解壓處理過的 apk
$ ./apktool d ~/tmp/jianjiuhongchenfengha_V1.0_mumayi_85342.apk ~/tmp/jianjiuhongchenfengha
- 用 vi 開啟目的碼
$ vi ~/tmp/jianjiuhongchenfengha/smali/com/sg/android/fish/FishActivity.smali
- 轉到第 330行(在 .method private init()V 內),將
const/16 v6, 0xc8
修改成const/16 v6, 0x647d
(也可以設定成其它數值),即可將初始金錢改成 0x647d =25752 - 儲存退出
- 用 apktool 重新打包 apk
$ ./apktool b ~/tmp/jianjiuhongchenfengha ~/tmp/jian.apk
- 這時候新的apk還不能直接安裝,需要打上簽名。用jdk的 jarsigner 打上簽名
$ jarsigner -verbose -storepass android -keystore ~/.android/debug.keystore ~/tmp/jian.apk androiddebugkey
相關推薦
odex轉dex和重新打包apk
ODEX是安卓上的應用程式apk中提取出來的可執行檔案,是通過apk安裝包的中的dex優化過的,再把apk包裡的dex檔案刪除。 這樣做可以加快軟體的啟動速度,預先提取,減少對RAM的佔用,因為沒有odex的話,系統要從apk包中提取dex再執行。 Odex化後系統啟動和程
一步一步帶你反編譯apk,並教你修改smali和重新打包
一、工具介紹: 1.apktool:aapt.exe,apktool.bat,apktool.jar;三個在同一目錄結合使用,用來反編譯apk,apk重新打包; 2.dex2jar:該工具作用是將classes.dex檔案,反編譯出原始碼(如果apk未加固),反編譯出文件
APK檔案使用ApkTool解包反編譯和重新打包及簽名
前段使用一直使用一個手機APK軟體,不過最近軟體更新,出現了一個很討厭的語音提示,於是想通過重新編譯把語音提示去掉。 【準備工作】 配置JAVA環境,到http://www.java.com/下載並進行安裝,如已安裝的可忽略 Windows下只需要下載這兩個檔案
重新打包apk簽名jarsigner簡單使用
jarsigner簡單使用說明 這裡並不需要到jdk的bin目錄下只要在c:目錄下都行 這是我試過的方法,再說一遍,我試過了,不是抄襲,雖然也算不上我的自創,但是這是最簡單粗暴的命令,私鑰自己在eclipse建立,這裡不詳細說明 jarsigner -verbose -ke
odex轉dex總結
在安卓系統所謂系統檔案在哪 cd /system/app ls 可以看到好多apk 啊 還有xx.odex 如果想移到別的手機安裝他們 1把odex轉dex 2打包apk 3簽名 第一步 下載jar檔案 連結傳送 http://dl.dbank.com/c0jp4
手把手教你將odex轉dex
android 開發中經常需要解決一些相容性問題,通常情況下我們會把對應的系統預裝的app拉出來,逆其結構看其有何端倪。過程中,我們會發現,有一些rom ,/system/app 目錄下是以xxx.odex的檔案形式存在,那麼odex 是什麼呢? odex
Mac下反編譯和重新編譯打包APK
反編譯APK需要的工具如下: - dex2jar 這個工具用於將dex檔案轉換成jar檔案 下載地址:http://sourceforge.net/projects/dex2jar/files/
android 反編譯(dex 和 odex),非腦殘轉帖,絕對可靠
Android 反編譯 反編譯odex檔案(例如framework.odex),若是反編譯dex,直接第4步 1.由於反編譯odex的工具在D:\Develop tools\android反編譯工具\odex中,因此為了執行命令方便一點在odex資料夾裡面,將syste
手機藍牙轉串口硬件和ANDROID的APK程序開發源代碼
藍牙 RS485 RS232 ANDROID 源代碼 一.概述深圳宏進藍牙模塊是專為智能無線數據傳輸而打造,采用英國CSR公司BlueCore4-Ext芯片,遵循V2.1+EDR藍牙規範。本模塊支持RS232串口以及RS485總線接口,並支持SPP藍牙串口協議,具有成本低、體積小、功耗低、
替換APK中的檔案重新打包
這兩天遇到一個問題,一直沒有頭緒,為了確認原因,需要將新的資源和程式碼,替換到老包中,看看問題是否會出現,結果很無情,問題依舊。不過倒是研究了下如何替換assets中的檔案。指令碼基本都是網上搜集來的,發現這個方法有個bug,替換可以,無法刪除,因此res會變大。用的時候要注意這點。 #簽名相關
apk解包+修改原始碼+重新打包 修改Android端app教程 修改apk檔案教程
修改之前一定要先安裝java開發環境,不會裝的去自行百度。文章較長,耐心閱讀。 一直在做Android應用開發,但對於從自己手中輸出的apk包,瞭解並不是很深。最近想研究一下,消除下自己的一些技術盲點。 好吧,廢話少說,先切入主題。這篇文章主要介紹如何獲取apk包中的de
Android Protect-0.ApkTool重新打包和Auto-Sign簽名
APK重打包 使用dex2jar+jd-gui我們可以把.dex轉換成.jar並檢視檔案, 通過ApkTool我們可以反編譯apk為apk資料夾,兩者對比,我們就能改動apk資料夾中相關的地址smali檔案或資原始檔。 修改之後,我們需要使用ApkTool重打
Android簡單的反編譯Apk並重新打包,簽名釋出
本文簡單介紹apk是如何修改logo(ic_launcher),類似的資原始檔修改也可以通過此方式。不過要修改class的話就要涉及到smali的學習了,這裡就暫且不談,後續有需要再做更新。 一、工具介紹: apktool:用來反編譯apk,apk重新打包
Android實用技能:你應該掌握的APK反編譯技巧以及重新打包釋出
需要的工具 1,apktool: 反編譯獲取資原始檔的工具,包括圖片資源和佈局檔案等的獲取 下載地址:https://bitbucket.org/iBotPeaches/apktool/downloads 2,dex2jar:反編譯獲取原始碼的工具,將classes.dex 轉化為jar
(轉)android Apk打包過程概述_android是如何打包apk的
最近看了老羅分析android資源管理和apk打包流程的部落格,參考其他一些資料,做了一下整理,脫離繁瑣的打包細節和資料結構,從整體上概述了apk打包的整個流程。 流程概述: 1、打包資原始檔,生成R.java檔案 2、處理aidl檔案,生成相應java
一鍵打包出多個不同包名,不同應用名稱和圖示的APK
此Demo的原理與多渠道打包的原理相同(動態設定App名稱,應用圖示,替換常量,更改包名,變更渠道)最近有一個需求,就是一套程式碼要根據不同的客戶打包出不同包名,不同appName,圖示的apk,如果一個客戶更改一次打包出一個apk的話效率非常的低,並且不利於維護本demo
將JAR包反編譯,修改後重新打包(轉)
有道是,知其然才知其所以然。有時候,我們必須讀取jar裡的打包的類。而有時還有可能要對它進行小量修改,使之適用於自己的非凡需求。前期預備 Java反編譯工具: JGUI http://pan.baidu.com/s/1o6xCtsQ 壓縮工具: Winrar開始 1. 將jar包
新建專案和匯入之前eclipse打包過的專案在android studio打包apk詳解
一、打包之前沒打包過的專案 1.開啟as自己想要打包專案介面,點選如下圖: 2.點選後會出現下圖:貌似和eclipse有點相同 3.應為是之前沒有打包過上面顯示button出現如下圖: 4.看到
Mac Android顯示SHA1和MD5值並生成簽名檔案打包APK
導讀:這篇博文很簡單,圖文也講的也很詳細,只要你跟著我左手右手一個慢動作,右手左手慢動作操作。就能穩穩地走一波。一、首先,生成簽名檔案1.點選選單欄中的Build的。 2.彈出窗體,建立新的KeySto
安卓apk反編譯、修改、重新打包、簽名全過程
首先明確,反編譯別人apk是一件不厚道的事情。程式碼是程式設計師辛苦工作的成果,想通過這種手段不勞而獲,是不對的。這也說明,程式碼混淆是非常重要的。本文抱著學習的態度,研究在一些特殊的情況下如果有需要,該怎麼反編譯apk。 工具簡介 ,編譯和反編譯apk