1. 如何修改安卓手機的通知欄時間、日期和通知顏色
安卓手機通知欄個性化教程對於追求個性化界面的android手機用戶,修改通知欄時間、日期和通知顏色可以為手機增添新鮮感。以下是詳細的步驟:
一、修改時間顏色
二、修改日期顏色
三、修改通知字體顏色
2. 怎樣把smali文件轉換為java文件
可以先把smali轉化為dex文件,然後再用 dex2jar轉化一次。我之前也遇到過跟你一樣的情況就是這么處理的。祝你好運!
3. 怎樣把反編譯的apk文件在eclipse中打開
那要看你反編譯的程度了。apk反編譯有兩部分,一部分是res等xml資源文件。用android 的apktool就可以了。這些xml文件都可以在eclipse中直接打開。
dex文件(源代碼)需要使用dex2jar工具轉化成jar文件。jar文件可以在eclipse查看其結構。對.class文件,eclipse可以查看方法,內部類等信息。
如果對Jar也進行了反編譯,那麼得到的就是Java文件。在eclipse中,可以像你new 的class一樣查看。
4. 如何進行ODEX反編譯實例
0x00 前言
使用開源工具出現問題而且很難在網上查找到解決方案的時候,最好的解決方法就是研究它的源碼,因為那樣能為我們提供更多的信息。
0x01 搭建smali/baksmali源碼調試環境
首先我們在github上拉取smali/baksmali的源碼
git clone https://github.com/JesusFreke/smali.git
可以看出該項目採用了grade自動化構建工具來編譯源碼的,因此我們可以在android studio中導入該項目,如下圖所示:
生成的baksmali在如下目錄下面:
上圖中的Program arguments中,-a選項代表api level,可以通過如下屬性獲得:
報錯如下:
Error occurred while disassembling classLandroid.support.v4.util.TimeUtils; - skipping class
java.lang.RuntimeException: Invalid methodindex: 32
atorg.jf.dexlib2.analysis.InlineMethodResolver$InlineMethodResolver_version36.resolveExecuteInline(InlineMethodResolver.java:175)
atorg.jf.dexlib2.analysis.MethodAnalyzer.analyzeExecuteInline(MethodAnalyzer.java:1512)
atorg.jf.dexlib2.analysis.MethodAnalyzer.analyzeInstruction(MethodAnalyzer.java:982)
atorg.jf.dexlib2.analysis.MethodAnalyzer.analyze(MethodAnalyzer.java:205)
atorg.jf.dexlib2.analysis.MethodAnalyzer.<init>(MethodAnalyzer.java:140)
atorg.jf.baksmali.Adaptors.MethodDefinition.(MethodDefinition.java:463)
atorg.jf.baksmali.Adaptors.MethodDefinition.getMethodItems(MethodDefinition.java:371)
atorg.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.java:238)
atorg.jf.baksmali.Adaptors.ClassDefinition.writeDirectMethods(ClassDefinition.java:282)
atorg.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java:112)
atorg.jf.baksmali.baksmali.disassembleClass(baksmali.java:225)
atorg.jf.baksmali.baksmali.access$000(baksmali.java:55)
atorg.jf.baksmali.baksmali$1.call(baksmali.java:149)
atorg.jf.baksmali.baksmali$1.call(baksmali.java:147)
atjava.util.concurrent.FutureTask.run(FutureTask.java:266)
atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
atjava.lang.Thread.run(Thread.java:745)
我們直接鎖定出錯的地方,在上面出錯信息標紅色的地方,並且在拋出異常處下斷點,我們可以判斷出錯原因是因為反編譯smali指令execute-line時傳入了一個未知的Dalvik虛擬機的內部java方法索引inlineIndex=32:
然後,我們把inline.txt作為-T選項的參數傳遞進去: