2011-10-07 48 views
0

這可能是一個相當瘋狂的問題,但我想在我花費所有時間嘗試之前獲得一些洞察。在Android源代碼中替換/重建framework.jar

是否有可能重新構建framework.jar(比如說從MIUI拉動framework.jar),將它反編譯爲smali,然後從頭開始重建它(通過閱讀並重新編譯成java)?

我打算這樣做+從Cyanogen mod的類似文件作爲參考建立。我有興趣做這一切的原因是因爲我有一部手機需要重新編譯無線電接口層,並且直接編輯smali並調試它變得太麻煩了。

我想我會問在這裏,因爲人們不會急於判斷是否有可能。我不明白爲什麼它不工作,如果你正確地添加所有東西(理論上),並重新編譯源代碼中的classes.dex文件。

我問的主要原因是努力將MIUI移植到我的手機。我認爲,頭疼的更重要的是重寫java並重建一個工作的framework.jar(其中包含不在CM7或AOSP源文件中的部分),而不是編輯與MIUI一起正常工作的framework.jar。

回答

1

雖然有各種方法可以將dex文件反編譯回java,但它們都不會生成完美編譯的java。您將不得不花費努力清理反編譯器中的java代碼,以便編譯它。對於像這樣大的東西來說,這不是一種選擇。

最好的辦法是獲得AOSP或CM這樣的東西在你的手機上工作,這樣你就可以直接自己構建框架,無論你需要什麼樣的修改。

+0

CM7已經用於我的手機(非正式)。我只是在努力將MIUI移植到它上面,這恰好在framework.jar中有一些庫和修改,這些不在CM7中。我想我可以扭轉MIUI,並將其添加到CM7框架相關的軟件包,並重建它爲MIUI工作。 – yarly

+0

heh。這就是爲什麼我不關心不釋放源代碼的自定義ROM的原因:)。我假設你已經完成了MIUI和CM之間的框架差異?你也許可以避免在與你想移植的特定功能相關的文件上進行反編譯。 – JesusFreke

+0

啊,是的,我確實這麼做了,只是試圖解決這個問題。我欣賞你的快速回復,並且我已經在#smali的freenode上看到過IRC,所以我很高興你注意到我的問題並花時間回覆。謝謝! – yarly