Android中Xposed框架篇---修改系統位置信息實現自身隱藏功能

一、前言
前文已經介紹了Xposed框架的基本使用規則,本文主要來介紹一個實際案例就是如何通過這個框架來修改系統的地理位置信息來實現隱藏功能,在如今社交工具的發展特別是微信,他有一個實時位置共享功能,那么對于那些不是單身狗的同學來說可能會有些蛋疼,哪天媳婦要查崗發送位置,結果你不在她期望的位置這時候就尷尬了,而且朋友圈在分享內容的時候可以選擇當前位置,有的屌絲就像我一樣沒錢但是又想到處旅游,那么這時候咋們就可以一本正經的裝個逼了。
二、定位原理
看到上面說的那么多,感覺這個功能必須要搞起來了,好處太多了,下面咋們就開始操作了,但是在這之前一定要先熟悉Xposed框架的使用規則,還不了解的同學可以去這里查看:Xposed框架的使用規則 在這篇文章中我們了解到了我們只需要在實現了IXposedHookLoadPackage接口的類中的回調方法handleLoadPackage中做攔截操作即可。但是這里我們還得先做一件事,那就是關于Android中的定位系統知識,我們知道手機定位有多種方式,一般有這幾種方式:
第一、衛星定位GPS(Global Positioning System)即全球定位系統,是由美國建立的一個衛星導航定位系統,利用該系統,用戶可以在全球范圍內實現全天候、連續、實時的三維導航定位和測速;另外,利用該系統,用戶還能夠進行高精度的時間傳遞和高精度的精密定位。第二、基站定位移動電話測量不同基站的下行導頻信號,得到不同基站下行導頻的TOA(到達時刻)或 TDOA(到達時間差),根據該測量結果并結合基站的坐標,一般采用三角公式估計算法,就能夠計算出移動電話的位置。實際的位置估計算法需要考慮多基站(3個或3個以上)定位的情況,因此算法要復雜很多。一般而言,移動臺測量的基站數目越多,測量精度越高,定位性能改善越明顯。第三、WiFi定位每一個無線AP(路由器)都有一個全球唯一的MAC地址,并且一般來說無線AP在一段時間內不會移動;設備在開啟Wi-Fi的情況下,無線路由器默認都會進行SSID廣播(除非用戶手動配置關閉該功能),在廣播幀包含了該路由器的MAC地址;采集裝置可以通過接收周圍AP發送的廣播信息獲取周圍AP的MAC信息和信號強度信息,將這些信息上傳到服務器,經過服務器的計算,保存為“MAC-經緯度”的映射,當采集的信息足夠多時候就在服務器上建立了一張巨大的WiFi信息網絡;當一個設備處在這樣的網絡中時,可以將收集到的這些能夠標示AP的數據發送到位置服務器,服務器檢索出每一個AP的地理位置,并結合每個信號的強弱程度,計算出設備的地理位置并返回到用戶設備,其計算方式和基站定位位置計算方式相似,也是利用三點定位或多點定位技術;位置服務商要不斷更新、補充自己的數據庫,以保證數據的準確性。當某些WiFi信息不在數據庫中時,可以根據附近其他的WiFi位置信息推斷出未知WiFi的位置信息,并上傳服務器。
第四、AGPS定位AGPS(AssistedGPS:輔助全球衛星定位系統)是結合GSM/GPRS與傳統衛星定位,利用基地臺代送輔助衛星信息,以縮減GPS芯片獲取衛星信號的延遲時間,受遮蓋的室內也能借基地臺訊號彌補,減輕GPS芯片對衛星的依賴度。AGPS利用手機基站的信號,輔以連接遠程定位服務器的方式下載衛星星歷 (英語:Almanac Data),再配合傳統的GPS衛星接受器,讓定位的速度更快。是一種結合網絡基站信息和GPS信息對移動臺進行定位的技術,既利用全球衛星定位系統GPS,又利用移動基站,解決了GPS覆蓋的問題,可以在2代的G、C網絡和3G網絡中使用。

在Android中關于這幾種定位都有具體的調用方法,所以如果想修改系統的定位信息,那么就必須先了解這幾種調用方式,在之前的一篇文章中也說到了,Hook的最關鍵一點就是需要找到Hook的地方,這個就需要去閱讀源碼來查找了。在Android中一般獲取位置信息就涉及到下面的幾個類和方法:
第一個:采用基站定位信息
android.telephony.TelephonyManager+getCellLocation+getPhoneCount+getNeighboringCellInfo+getAllCellInfoandroid.telephony.PhoneStateListener+onCellLocationChanged+onCellInfoChanged第二個:采用Wifi定位信息android.net.wifi.WifiManager+getScanResults+getWifiState+isWifiEnabledandroid.net.wifi.WifiInfo+getMacAddress+getSSID+getBSSIDandroid.net.NetworkInfo+getTypeName+isConnectedOrConnecting+isConnected+isAvailableandroid.telephony.CellInfo+isRegistered第三個:采用GPS定位android.location.LocationManager+getGpsStatus+getLastLocation+getLastKnownLocation+getProviders+getBestProvider+addGpsStatusListener+addNmeaListener

三、攔截操作
有了這些方法和類,下面就開始攔截操作了,但是本文采用是這種攔截方式,因為在多次試驗之后,發現Android中很多定位app絕大部分都是采用基站+GPS+Wifi這三種混合方式來進行定位的,但是如果我們要去都攔截這三種方式那就太費勁了,所以這里我們這么干,只攔截操作GPS定位,而其他兩種方式攔截之后返回值全部設置空,這樣讓系統強制的使用GPS定位,為什么要采用GPS定位這種方式呢?因為其他的兩種方式在攔截之后去構造假的數據有點麻煩,而對于GPS這種方式咋們只需要構造一個假的Location對象就可以了,操作非常方便。到這里咋們思路有了,下面就來開始操作了:



首先咋們先把其他的定位方式信息攔截之后全部返回null值,這樣就可以強制系統使用GPS定位數據了,接下來就開始攔截GPS定位系統數據了,因為本人夢想去臺灣看看五月天,所以這里就構造一個假的臺北數據:



直接構造一個假的Location對象,然后設置成參數即可,因為這里的location對象是通過回調方式傳回去的,所以需要修改參數而不是返回值哦。這里如果有同學想去其他地方,又不知道具體的經緯度信息,該怎么辦呢?這個可以使用百度地圖的拾取器功能:

點擊去之后就可以隨意選擇地理位置了:

選中之后,可以看到了經緯度信息,在右上角處就可以賦值信息了:


好了,到這里咋們就成功了修改了系統中的地理位置信息,接下來咋們就開始運行了,運行步驟也很簡單,先運行模塊,然后XposedInstaller工具會提示模塊更新或者有新模塊需要激活,進入工具點擊激活或者更新,然后重啟設備生效即可。

四、操作結果演示
當我們再次重啟之后,打開百度地圖驚奇的發現沒什么數據?這里不是我們攔截出錯了,而是我們在室內,所以GPS定位可能會失敗,所以如果想看到數據需要去室外操作即可,下面是我的百度地圖的截圖:



有了這地圖,咋們就要開始真正的裝逼了,先搜索一下附近的美女哈:



這臺灣的妹子除了會嗲之外,總是喜歡用英文名哈!先不管了,找個妹子聊聊先~
然后咋們再去去朋友圈曬一曬:

這里先選擇地理位置哈。



哈哈,看到了,這個逼裝的我措手不及,自己都差點相信了,看到這里的定位信息點擊去看到也是真實的,而不是我們以往看到的:"該位置由用戶自己定義的",到這里咋們這個逼算是裝成功了。

項目下載:http://download.csdn.net/detail/jiangwei0910410003/9655663

五、總結
本文主要介紹了Xposed框架的一個實際使用案例,就是修改設備的地理位置信息,讓自己裝個逼,但是還是的說,曬圖有風險,裝逼需謹慎!一切珍重。本文使用了修改地理位置信息實現了周末去一趟臺北的愿望功能,也希望大家能夠借助這篇文章滿足自己多年來的旅游愿望,最后也希望臺灣早日回到祖國的懷抱!

更多內容:點擊這里

關注微信公眾號,最新技術干貨實時推送


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容