Android stdio Apktool源碼編譯

来源:http://www.cnblogs.com/konf/archive/2016/10/09/5943641.html
-Advertisement-
Play Games

Android Apktool源碼編譯 標簽(空格分隔): Android Apktool 源碼編譯 需求 習慣NetBeans調試smali需要用Apktool反編譯apk,需要用 d的參數才能生成.java文件。下載最新的Apktool.jar,運行後提示smalidebugging已經從Apk ...


Android Apktool源碼編譯

標簽(空格分隔): Android Apktool 源碼編譯


需求

習慣NetBeans調試smali需要用Apktool反編譯apk,需要用-d的參數才能生成.java文件。下載最新的Apktool.jar,運行後提示smalidebugging已經從Apktool去掉了。嘗試早期版本,存在bug需要源碼調試修複。

編譯過程遇到的問題

1.從github下載smalidebugging的代碼。(Apktool-issue_901)
2.編譯提示錯誤修複。
1)smaliParser.g,smaliTreeWalker.g,smaliLexer.jflex等文件轉換成java文件。下載ant-antlr-3.jar,jflex-1.6.1.jar進行轉換。註意antlr必須使用合適版本。
2)修複提示的錯誤,如在brut.apktool\apktool-lib\src\main\java\brut\androlib\src\SmaliDecoder.java文件里出現了兩個錯誤,ClassPath沒有dontLoadClassPath靜態變數,baksmaliOptions沒有DIFFPRE靜態變數,我也沒弄明白我下載的都是最新的smali代碼,為什麼smali類里會沒有相關變數。
ClassPath.dontLoadClassPath = mDebug;
options.registerInfo = (mDebug ? baksmaliOptions.DIFFPRE : 0);
我把ClassPath.dontLoadClassPath = mDebug;直接去掉,baksmaliOptions.DIFFPRE改為baksmaliOptions.ALL。
3.添加主工程對各種modul的依賴及jar的設置。
4.運行調試修改返回異常處的代碼。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、現有兩對象間的繼承:Object.setPrototypeOf(child,father); 2、基於現有父對象創建子對象:var child=Object.create(father,{新屬性}); 3、批量修改多個子對象的父對象:在創建第一個子對象前,修改構造函數的prototype為新對象 ...
  • 繪製普通直線,先看效果圖: 實現代碼如下: 繪製貝塞爾曲線 效果圖如下: 代碼如下: 關於瞭解的html5的基本知識點就到這裡了,畢竟項目中沒有去使用,出於個人閑來無事有個大體瞭解.並且都很基本,其實這些基本的知識點感覺沒必要花費這麼多精力去關註,這個時間個人感覺花的太多,完全可以找個小demo去研 ...
  • 我覺得,這篇文章最大的特點是,完整記錄了一次優化解決問題的過程;示例代碼看起來前後有些不太統一,是因為: 我不是先有了方案再寫博客,而是藉助博客本身來梳理思路,簡化邏輯!如此,寫博客,就不單單是一個耗時的分享知識的過程,更成為了一個幫助自己思考的有力工具!贊!!! ...
  • VPN簡單說就是連接區域網的一個通道。Ios8之後蘋果增加了一個VPN的介面NEVPNManager,它可以方便的添加VPN連接。 首先在你的Xcode內,TARGETS->Capabilities->打開persion VPN 在項目中添加NetWorkExtension庫 引入頭文件<Netwo ...
  • SDK接入(1)之Android Facebook SDK接入 由於游戲已上線,且處於維護階段,所以有空寫寫各種SDK接入過程和遇到的問題,也當作一種工作總結。SDK接入主流分為這麼幾類, 、`支付 分享 推送 統計`等,達到借‘他山之石’的效果。順便吐槽下,現在國內是個渠道就弄個所謂的自己的SDK ...
  • 原理是拉伸裡面的內容,將邊保護起來 方法1: ①[image resizableImageWithCapInsets:UIEdgeInsetsMake(30, 30, 30, 30)]; ②[image resizableImageWithCapInsets:UIEdgeInsetsMake(30, ...
  • 在新的mac下check代碼後,執行創建ios工程的sh腳本,在終端提示 ios version not found 提示: 沿著提示發現,前面的是列印錯誤的,後面的才是出錯的問題,iphone.cmake內部錯誤地方如下圖 在執行命令的時候找不到ios sdk version 註意:後面的9.1 ...
  • 本文地址:http://www.cnblogs.com/wuyudong/p/5943005.html,轉載請註明出處。 本文實現導航界面1的佈局的實現,效果如下圖所示: 首先分析所使用的佈局樣式: 對應的activity_setup1.xml佈局文件內容如下: 最後還剩下右下角的佈局還沒有實現,將 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...