乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ApkTool反編譯和重新打包

       quasiceo 2014-11-19
      分類: android 2013-04-23 15:04 9636人閱讀 評論(3) 收藏 舉報

      有時會需要反編譯APK,各人有各人的原因,你都懂的……


            準備工作:                            

      下載APKTool,通過下面這個連接進行下載,https://code.google.com/p/android-apktool/downloads/list

      windows下只需要下載這兩個文件包即可:apktool1.5.2.tar.bz2和apktool-install-windows-r05-ibot.tar.bz2

      分別解壓到到一個方便操作的目錄下,然后就可以通過控制臺進行操作了,當然前提是你配置已經(jīng)有了JAVA環(huán)境,這個網(wǎng)上一搜一大堆,就不贅述了。


             反編譯:                               

      把要反編譯的APK文件放到跟APKTool四個文件的同一個目錄下;

      打開控制臺,跳到該目錄(例如是C:\Windows),執(zhí)行:

          cd C:\Windows                                                 

      然后執(zhí)行:

         apktool d apkname.apk  foldername    

      apkname.apk 表示要進行反編譯的APK文件,foldername表示反編譯后文件存放的目錄,即在當前目錄下會自動建一個新目錄存放(如:C:\Windows\foldername

      執(zhí)行完上面語句后,如果沒有出現(xiàn)錯誤提示,則成功反編譯了,找到foldername目錄,打開smali目錄即為反編譯出來的字節(jié)。

      但我在執(zhí)行上面語句后,卻出現(xiàn)了錯誤提示:


    • Exception in thread "main" brut.androlib.err.UndefinedResObject: resource spec:  
    • 0x010300dd 

      根據(jù)提示描述是找不到資源文件,應該是要反編譯的APK文件用到了系統(tǒng)的一些資源。

      解決辦法:

      從手機中導出framework-res.apk文件,該文件是/system/framework下面,把這個文件拷到跟apkTool同一個目錄下,執(zhí)行以下語句把資源文件加進來:

          apktool if freagmework-res.apk            

      執(zhí)行完以后就可以把framework-res.apk導進來。此時再執(zhí)行apktool d即可以正常反編譯了。

      由于反編譯出來的是字節(jié)碼,所以想修改軟件邏輯就需要知道一點字節(jié)碼的知識,可以看這里:寄存器類型、函數(shù)和成員操作符號。

      在這里列舉幾個常用的邏輯符號的對應smali語法:

      符號 smali語法
      == if-eq
      != if-ne
      equals if-eqz
      !equals if-nez

      修改完代碼邏輯后,就要重新打包成APK文件了:

        apktool b foldername       

      其中foldername即放反編譯結(jié)果的目錄,執(zhí)行成功后會在該目錄的dist目錄下有一個重新打包后的apk文件。

      當然我在重新打包時出現(xiàn)了錯誤提示:

      1. Exception in thread "main" brut.androlib.AndrolibException: brut.directory.PathN  
      2. otExist: apktool.yml  

      從字面上理解就是找不到apktool.yml這個文件,如果在執(zhí)行apktool d后能正常反編譯,在目錄中是會存在apktool.yml文件的,我之所以出現(xiàn)這個錯誤,是因為在反編譯時出現(xiàn)了上面提到的“資源找不到”錯誤后,我看到反編譯出了字節(jié)碼,就沒有理會它導致的。


      好啦,到此就成功打包了一個新的apk文件了,但還不要高興得太早,該文件是一個沒有簽名的apk,有了解過android的應該都知道,沒有簽名是無法安裝的。那就要重新為該文件簽一下名了。把你的簽名文件和apk拷到同一個目錄下,然后執(zhí)行以后語句即可:

         jarsigner -verbose -keystore wendy.keystore -signedjar wendy_signed.apk wendy.apk wendy.keystore        

      這里輸入wendy.keystore即你的簽名文件名稱,文件wendy.apk,最終生成wendy_signed.apk為Android簽名后的APK執(zhí)行文件。


      大功告成!?。?/span>

      參考文章:

      http://blog./786.html

      http://blog.csdn.net/caszhao/article/details/6030425

      http://danqingdani.blog.163.com/blog/static/1860941952012103041246686/

      http://blog.csdn.net/wenhaiyan/article/details/5520964



    • Exception in thread "main" brut.androlib.err.UndefinedResObject: resource spec:  
    • 0x010300dd
      • 本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多