使用jar命令替換jar中的一個或多個文件

        android app開發者經常受困於想調用系統hide的api卻不能,而常用的方法是反射,本文將介紹一種用系統源碼編譯出來的class替換相應的api jar中的class文件的方法,正確的添加姿勢如下:

    首先,要拿到out目錄下相應的原始的沒有隱藏方法的class文件,以InputManager.class爲例,比如我app要調用InputManager的injectInputEvent方法,此方法在google標準api中是隱藏的,因此需要替換使用。

   1) 先把標準的api中android.jar解壓,解壓方法用jar或者重命名.zip文件然後解壓都可以,找到要替換的class文件的具體名稱以及路徑。

2)從rom的out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes/android/hardware/input目錄得到InputManager.class文件,接着需要創建InputManager.class在api中的目錄結構,android/hardware/input

3)將api中android.jar和上一步創建的目錄放到同級目錄。

4)命令行執行:jar -uvf android.jar android/hardware/input/InputManager.class 

大功告成,將此時的android.jar替換掉google標準api中的android.jar即可,從此就可以調用InputManager中隱藏的方法了。


Mark 一下,有備無患~~~













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章