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