Xposed框架以在不修改APK文件的情況下修改程序的運行。
這套框架需要設備解鎖了Bootloader方可安裝使用[1](root為解鎖Bootloader的充分不必要條件,而xposed安裝僅需通過TWRP等第三方Recovery卡刷安裝包而不需要設備擁有完整的root權限)。
(1) xposed 是啥?
xposed是一個框架,上面有很多模塊,這些模塊都依賴於xposed這個框架,之所以稱xposed是第一神器,就是因為這些模塊可以完成許多匪夷所思的功能,例如:修改微信的界面,自動搶紅包模塊,自定義程序的文本,防止微信消息撤回,防止BAT三大流氓的全家桶相互喚醒、連鎖啟動,鎖屏后自動干掉APP防止后台運行耗電,還有很多修改App或手機數據的裝B模塊等等。
(2) xposed 的原理?
xposed 原理就是修改系統的關鍵文件,然后當APP調用系統API時,首先經過xposed,而這些基於xposed的模塊就可以選擇性的在App調用這些api的時候干一些”壞壞”的事情,或者修改返回的結果,這樣app在運行的時候效果就會改變,但app本身並沒有被破壞,只是調用系統api的時候,Android系統的表現發生了變化,這就是鈎子,專業術語hook。所以,說白了,xposed就是個強大的鈎子框架。
來一段專業的原理解釋吧:
作者通過替換 /system/bin/app_precesss 程序控制zygote進程,使得它在系統啟動的過程中會加載Xposed framework的一個jar文件即XposedBridge.jar,從而完成對Zygote進程及其創建的Dalvik虛擬機的劫持,並且能夠允許開發者獨立的替代任何class,例如framework本身,系統UI又或者隨意的一個app。
除此之外使用這種方法的好處是ROM,APP都沒有產生任何變化,因此理論上就不會造成設備變磚,同時撤掉修改也非常容易,僅需要停用 Xposed framework 即可完全恢復原樣。
摘自https://blog.csdn.net/fuchaosz/article/details/53143216
VirtualXposed 是什么原理?
它就是先在你手機上建立一個「虛擬空間」,你需要在這個“虛擬環境”里面安裝 APP ,並且安裝其對應的 Xposed 框架模塊,這樣就能讓這個模塊對該 APP 起到作用了。
安裝到VirtualXposed中的應用,運行起來跟普通應用無任何差別,可以正常收發消息,接收推送,讀取本機文件等。