想讓Android手機開掛,安裝Xposed框架就行了!

2020-12-14 51Testing軟體測試網

Xposed(也被稱作Xposed框架、XP框架、Xposed framework),是運行於Android作業系統的一個著名的免費開源Hook框架。其通過替換Android系統的關鍵文件,可以攔截幾乎所有Java函數的調用,並允許通過模塊擴展方式來實現各種功能,模塊中的自定義代碼可以更改調用函數時的行為,常被用來修改Android系統和應用程式的功能。

用戶可以在一些應用商店或其自帶的下載庫來下載安裝各種模塊,相比於重新安裝系統來獲得新功能,Xposed提供了一種更便捷的方式[1][2]。Xposed模塊可以很容易的開啟和關閉。你只需要激活或者禁用Xposed模塊,然後重啟手機即可。

Xposed框架的標誌

但如今,隨著Android系統的不斷更新,Xposed框架逐漸無法在新設備上運行。此時,EdXposed團隊成為了後續版本研發的繼任者。2019年1月,ElderDrivers完成了EdXposed的開發。EdXposed是一個Magisk模塊,依賴於riru框架,成功將Xposed移植到了Android Pie上,成為最接近原版Xposed的框架。2019年9月,EdXposed正式支持Android Q。2020年1月,EdXposed與Xposed原開發團隊達成共識,成為Xposed停止更新後的官方接任者[3]。

EdXposed有如下幾個特點:

1. 完全支持Android Pie和Q,甚至也可以支持R。

2.EdXposed具有「應用列表」模式。可以選擇要應用Xposed模塊進行hook的的應用程式,而系統中的其他應用程式在完全乾淨的環境中運行。

3. EdXposed使用Riru注入,不修改libart和app_process。

 安裝和使用

對於Xposed,Xposed Installer是Xposed框架的官方安裝器,可以在擁有root權限的設備上安裝Xposed框架。Xposed Installer也提供模塊的下載、管理、日誌顯示等功能[4]。鑑於Xposed已經不再適用於新的Android系統,並且網上已經有非常多的教程,在此就不再贅述了。下面著重介紹一下EdXposed的安裝方法。

由於框架的核心點是系統進程注入技術,需要擁有設備的root權限,而且針對不同型號的設備和系統版本需要選擇正確的框架版本,滿足條件才能安裝。

首先,我們需要解除手機的BL鎖,對於不同品牌的手機,解鎖方式有所不同。以小米手機為例,可以在官方網站進行申請,步驟較為簡單[5]。

其次,需要在手機上安裝第三方Recovery,此處以TWRP為例。

 2.1. 下載並安裝ADB/FASTBOOT支持,安裝完成後啟動手機進入fastboot模式,連接電腦。在命令行中輸入fastboot devices並執行,如果顯示當前的連接手機,則安裝成功。

 2.2. 打開TWRP官網[6],在Devices頁面選擇自己的機型對應的TWRP安裝包,例如小米6,進入後點擊對應的下載連結:

點擊想要下載的版本,如twrp-3.4.0-0-sagit.img進行下載:

下載完成後,在命令行中輸入「fastboot flash recovery D:\twrp-3.4.0-0-sagit.img」(剛剛下載的twrp路徑)並執行。

提示刷入成功後,重啟進入twrp Recovery頁面,如小米是同時按開機鍵和音量上鍵進入。

2.3. 下載Magisk的zip卡刷包和apk安裝文件(https://www.download-magisk.com),並使用數據線導入到手機中。在twrp首頁,點擊「安裝」,選擇剛剛下載的Magisk的zip包進行安裝。

安裝成功後,重啟系統,安裝Magisk的apk管理軟體。

打開Manager應該可以看到安裝成功的頁面。

2.4. 參考EdXposed的官方文檔的Install步驟[7],安裝EdXposed:

2.4.1. 在Magisk Manager的「下載」中安裝 Riru(Riru - Core)和 Riru - EdXposed 後重啟手機。

2.4.2. 下載安裝EdXposed Manager[8],安裝完成後打開可以看到EdXposed框架已激活。

 開發

本節中將介紹如何在AndriodStudio 4.0.1開發環境下創建一個簡單的EdXposed模塊。其實,EdXposed模塊也是一個 Android 程序。與普通程序不同的是,編寫EdXposed模塊時需要完成以下4個任務:

1)讓手機上的EdXposed框架知道我們安裝的這個程序是個EdXposed模塊。

2)模塊裡要包含有EdXposed的API的jar包,以實現下一步的Hook操作。

3)這個模塊裡面要有對目標程序進行Hook操作的方法。

4)要讓手機上的EdXposed框架知道,我們編寫的EdXposed模塊中,哪一個方法是實現Hook操作的。

下面開始按步驟進行:

 3.1. 新建項目,可以選擇Empty Activity,進入項目頁面,在項目目錄中找到AndroidManifest.xml文件,插入如下代碼:

本步驟主要對Xposed模塊進行聲明。

 3.2. 手機連接Android Studio,運行剛剛編寫的代碼,在手機裡會安裝一個app,同時,EdXposed框架中會顯示出這個模塊。

3.3. 配置Xposed API的依賴。在AndroidStudio 4.0.1中,可以在項目目錄中找到build.gradle,插入以下代碼。完成之後,build.gradle會提示文件已經修改,點擊 「sync now」進行同步。

本步驟設置了jcenter作為代碼倉庫,直接從這個倉庫裡遠程尋找de.robv.android.xposed:api:82 的API。

 3.4. 下面打開activity_main.xml,在界面上加入一個button,並在MainAcitiviy裡插入以下代碼:

本步驟在MainActivity界面上加入了一個按鈕,打開app後點擊按鈕後會彈出一個toast提示,該提示的內容由 toastMessage() 方法提供,而toastMessage()的返回值為「我在正常運行」。

至此,我們已經搭建好一個app靶子,其中包含一個之後用來hook的按鈕,在關閉和啟動Xposed模塊時會顯示不同的toastMessage。

 3.5. 下面編寫hook代碼。在MainActivity的路徑下新建一個類「HookTest.java」,插入以下代碼:

此處通過IXposedHookLoadPackage接口中的handleLoadPackage方法來實現Hook並篡改按鈕的toastMessage。需要設置目標程序的包名,在XposedHelpers.findAndHookMethod中設置想要Hook的類和方法。在afterHookedMethod方法(用來定義Hook了目標方法之後的操作)中,修改了toastMessage()方法的返回值為「嘿嘿!你已被劫持!」,對應之前點擊按鈕後顯示的文字提示。

 3.6. 下面設置Xposed模塊入口。在main文件夾中新建assets文件夾,並在其中新建文件xposed_init,文件類型text,並在其中填寫剛剛編寫的hook類路徑「com.example.test.HookTest」。此時,EdXposed框架就能夠從這個 xposed_init 讀取信息來找到模塊的入口,然後進行Hook操作了。

3.7. 在File -> Settings -> Build, Execution, Deployment ->Debugger找到hotSwap,把Enable hotswap的勾去掉。

3.8. 點擊「運行」!在EdXposed框架裡找到自己寫的模塊,打上勾啟動模塊,重啟手機。

3.9. 打開app點擊按鈕顯示劫持成功。

 總結

本文介紹了EdXposed框架的前世今生,安裝使用和模塊編寫,而EdXposed框架的強大不止於此,更多功能大家有興趣可以自己體驗。

 Reference:

[1].https://www.xda-developers.com/xposed-framework-hub/

[2].https://github.com/rovo89/XposedBridge/wiki/Development-tutorial#how-xposed-works

[3].https://zh.wikipedia.org/zh-hans/Xposed_(%E6%A1%86%E6%9E%B6)

[4].https://repo.xposed.info/module/de.robv.android.xposed.installer

[5].http://www.miui.com/unlock/index.html

[6].https://twrp.me/

[7].https://github.com/ElderDrivers/EdXposed

[8].https://github.com/ElderDrivers/EdXposedManager/releases

相關焦點

  • Android 7.0+使用VirtualXposed+Charles進行抓包
    經過一方查找,終於發現了一個相對比較簡單的辦法,這裡就開一篇文章,記錄一下。這裡我使用的手機為小米8 Lite,不同的手機品牌/型號安裝證書的方法可能有所不同,具體可通過搜尋引擎來獲得安裝的方法。依次點擊:設置→更多設置→系統安全→加密與憑據→從SD卡安裝,接著在文件瀏覽器中選擇你下載好的證書。然後給證書憑據起個名字,可隨意填寫,憑據用途選擇VPN和應用。
  • 【Android改機系列】一鍵新機原理剖析
    ,免root的改機框架。 我手上只有nexus6p,安裝到手機上跑了一下,瞬間閃退,沒有任何崩潰日誌。但是這條日誌出賣了它:這明顯是調用System.exit(0)主動退出。> activityThreadClass = Class.forName("android.app.ActivityThread"); Object currentActivityThread = activityThreadClass.getDeclaredMethod("currentActivityThread", new Class[0]).
  • 太極xposed模塊使用教程
    今天給大家分享一下太極xposed模塊使用教程。很多小夥伴說下載不到Xposed模塊,這個網上其實很多,但是第三方的下載站就算了吧。我也是一個深受其害的網癮少年,只要是下載站的軟體,一不留心一次性電腦可能會多安裝好多個軟體,或者手機也會莫名其妙的安裝一些應用市場。因此今天給大家分享的是小編已經測試並且可以直接使用的手機APP,不用擔心會下載第三方軟體以及有病毒之類的情況。使用太極模塊我們省去了ROOT手機的煩惱,我們可以在模塊裡面加載第三方程序,這樣等於軟體的權限可以直接打開。
  • 駭極乾貨|第2期:Android日誌系統分析
    以前做項目的時候,使用xposed對使用過愛加密加固過的應用進行hook時,出現過完全列印不出日誌的情況,當時完全不知道是什麼原因導致的。看到看雪的這篇文章《解決愛加密加固之後使用xposed hook的時候log列印不出來的問題》,加上最近又在看一些系統內核的東西,所以有了這篇文章。
  • 愛奇藝開源 Qigsaw,基於 Android App Bundle 的動態化框架
    android {  ...  splits {    // Configures multiple APKs based on screen density. vivo手機不支持adb install-multipl命令。這裡我們重點介紹第二種安裝方式,Android 5.0提供PackageInstaller用於安裝Base APK和Split APKs。當第三方應用通過PackageInstaller在應用運行期安裝Split APKs時,系統會啟動安裝器界面供用戶選擇是否安裝此次更新。
  • 我的世界開掛神器下載安裝遊戲介紹
    你是否在尋找我的世界開掛神器下載安裝,18183遊戲庫為您提供最新最好的下載體驗!我的世界開掛神器下載安裝特色系統:我的世界開掛神器下載安裝玩法特別有趣,快來下載吧!
  • 手機ROOT後交管12123打不開怎麼解決;EdXposed使用QX模塊微X教程
    隨著手機安全的問題越來越高,APP對系統的檢測也越來越嚴格,最簡單就是對手機ROOT權限以及蘋果手機越獄的檢測,一旦檢測到這些環境後,會判斷手機存在風險,直接無法運行APP。那麼怎麼解決呢?id=250當我們的Exposed完美激活後,我們安裝對應的交管12123隱藏root模塊,然後在xposed軟體設置裡直接打開白名單功能,Xposed-應用-添加12123為白名單,最後重啟手機,一般都完美解決了Edxposed使用模塊教程
  • 未Root手機如何快速刷步數?方法一,小白教程
    1、手機安裝virtualXposed ;root的手機不用裝virtualbox。2、打開virtualXposed ,點擊下面的「六筒」。3、選擇「添加應用」。4、選中「運動健康」後,點擊「安裝」。稍等片刻,即可安裝到virtualXposed 中。5、返回到virtualXposed 的主界面,往上滑一下,就到了應用列表界面。點一下裡面的xposed。
  • 如何安裝谷歌服務框架Play商店以及Google帳戶如何綁定設備
    第一,你必須在手機上安裝完整的谷歌服務框架,也就是谷歌商店系統程序,俗稱谷歌三件套,谷歌全家桶或者谷歌系統安裝程序等等如果你會的話,你可以自己安裝並調試完成安裝完成正常之後,掛上你的天……梯……【你懂的】然後打開Play商店登錄您的谷歌Google帳號即可進入下載商店內的應用和遊戲!
  • 2020年手機必裝系列軟體—玩機篇「第三篇」
    如果你想像大佬一樣玩機,那麼你的手機必須可以root。因為如果完全用xposed框架,實現的功能還不是那麼多。就是說可以用xposed的模塊,也是大佬製作出來的,它相對於直接root的軟體來說要少一點。
  • 在Android 中,使用簡單的幾行代碼實現複雜、漂亮的動畫
    這裡我用 ScreenToGIF 工具查看一下到底有多少幀可以看出,這個動畫只有 418 幀……那麼,用什麼框架或庫能完美實現這個動畫呢?答案是 lottie-android。lottie-android 是 Airbnb 公司開源的框架,最低支持 Android API 16,從 lottie-android 2.8.0開始,遷移到了 androidx 項目,目前最新的版本是 lottie-android 3.4.1。
  • 安卓手機面具root後安裝Edxposed框架或太極陽刷機救磚教程
    如果你已經獲取面具root了,希望激活Edxposed框架或者太極陽,請繼續往下看Edxposed框架和太極陽不要一起用,兩者選其一即可。否則變磚Edxposed框架和太極陽不要一起用,兩者選其一即可。否則變磚Edxposed框架和太極陽不要一起用,兩者選其一即可。
  • 小米手機藏後門可遠程安裝任意APP?真相如此驚悚嗎?
    你可能已經習慣了這個場景——新手機會預裝一些APP,怎麼刪都刪不掉。但是,手機製造商將這些APP和服務安裝在你手機上是否會有特別的目的?這些預裝的應用又是否會威脅到機主的安全和隱私?  荷蘭的一位小夥對此就頗有疑問。他是小米4的用戶。
  • 為了安裝它你還得破解手機
    為了安裝它你還得破解手機 八門神器最早是為塞班系統開發的內存修改工具,在android和ios成為主流後,也開發了android和ios版本。不過現在手機的網路遊戲成為主流,八門神器這種修改本地內存的工具已經失去了它的作用了。
  • 安卓5.0到安卓10全版本Xposed安裝激活使用教程
    安卓手機我們常說刷XP框架,XP框架給我們帶來很多插件,讓我們有了很多自定義功能而現在我們聽到最多的就是EDxposed,那麼Edxposed和Xposed到底有什麼區別呢?這裡ROM樂園僅手機了安卓5.0-安卓10這些版本,安卓4.4版本維護更新太低,已不再整理更新。安卓5.0 6.0 7.0 7.1 8.0,以上五個版本基本一致,我們放在一起講。只需要下載Xposed.apk,打開Xposed聯網,然後下拉刷新一次,APK會自動根據你的系統版本匹配對應的XP框架文件,然後下載自動刷入。
  • 手機系統將有A/B分區?Android 11這些變化你關注過嗎
    你可以在安裝更新的同時繼續使用手機,而實際應用更新只需要一些時間,就像正常重啟一樣。如果你的手機經常更新,則此功能(稱為無縫更新)可以節省大量時間。 最重要的是,如果偶然有更新損壞且無法安裝,則Android中的A/B分區可以為你提供保護。在這種情況下,只會影響非活動分區(「分區B」),因此你可以繼續正常使用手機。
  • 安裝一塊木板在非承重牆上,不僅好看,而且還能掛電視
    近日,有人問秀巢網小編:我家電視背景牆是非承重牆,就是普通的空心磚輕體牆,一共才七八公分厚,而且牆體的基礎還比較差,這種情況應該如何掛電視呢?當然,必須要對牆體進行加固才行。今天秀巢網小編分享一種對牆體加固的辦法,那就是在牆上安裝一塊木板,讓它成為木質電視背景牆,這樣不僅好看,而且掛電視電視也是沒問題的。那麼,背景牆上安裝木板有哪些方式呢?秀巢網小編下面就聊六種:一、牆體局部小面積安裝木板將一塊木板在電視機的局部區域安裝在牆面上,這其實也是對牆體進行局部加固的辦法。
  • 華為nova5 Pro/nova6 谷歌服務框架成功安裝教程
    大家都知道最近谷歌卡的嚴,跟安卓基本無緣了,但勞動人民的智慧是無窮的,今天特地把朋友華為nova5 Pro/nova6 谷歌服務框架成功安裝的教程詳細記錄下來,過年準備出國遊的小夥伴不用再惆悵了。這次需要藉助電腦和安裝包一起,電腦不限,能聯網,能打開網頁就行,沒要求!