Android中使用ant混淆編譯

來源:互聯網
上載者:User

搞了好幾天,查看了上百個網站,最後摸索出一套很簡單的ant混淆編譯的方法。下面開始:

1.       拿一個普通項目來說,首先為它加上ant編譯功能。

android update project --name project_name -t 3 -p D:/temp/project_name

此時會在項目根目錄自動產生一個名為build.xml的ant指令碼。上面的project_name是你的項目名稱。

 

2.       加入混淆功能

就第一步來說,在命令列中已經可以使用ant進行編譯了。因為Android中是這樣的,在輸入命令ant debug的時候會自動調用D:/android-sdk-windows/tools/ant/main_rules.xml目錄下的規則檔案,所以無需自己寫ant指令碼了。既然它會調用預設的規則檔案(預設檔案沒有加入混淆功能),那麼我們想要混淆,直接在這個規則檔案上修改就好了。在名為-dex的target後加入一個target,代碼如下:

 <target name="optimize" depends="compile"><jar basedir="${out.classes.absolute.dir}" destfile="temp.jar"><java jar="D:/android-sdk-windows/tools/proguard/lib/proguard.jar" fork="true" failonerror="true"><jvmarg value="-Dmaximum.inlined.code.length=32"><!-- value="-libraryjars ${library-jar}/some_lib_used.jar"> --> </arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></!--></arg></arg></arg></jvmarg></java><delete file="temp.jar"><delete dir="${out.classes.absolute.dir}"><mkdir dir="${out.classes.absolute.dir}"><unzip src="optimized.jar" mce_src="optimized.jar" dest="${out.classes.absolute.dir}"><delete file="optimized.jar"></delete></unzip></mkdir></delete></delete></jar></target>

修改上面代碼涉及到路徑的地方,改成本地對應的路徑。<arg value="-ignorewarning"/>這一行是自己加入的,意思是忽略警告。

接著在名為-dex的target中進行一個混淆依賴,加入後代碼如下:

<target name="-dex" depends="compile, optimize, -post-compile, -obfuscate" unless="do.not.compile"><if condition="${manifest.hasCode}"><then><dex-helper></dex-helper></then><else><echo>hasCode = false. Skipping...</echo></else></if></target>

實際上加入的只是optimize,意思是這個target依賴target optimize。

 

3.       開始編譯

可以在命令列中編譯了,編譯後把class.dex進行反編譯,可以看出來混淆成功。不知道為什麼在我們的項目中反編譯不回來,但是可以保證混淆是成功了。我拿過其他例子項目編譯後反編譯過,可以看:(不好意思,註冊一星期之內不能上傳圖片)

 

現在補上:

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.