① 安卓手機怎麼設置4g網路
在手機設置中設置4g網路,具體步驟如下:
1、點擊桌面上的設置圖標,進入設置界面,設置界面中找到網路和連接。
② android模擬器模擬基站信息,並將wifi偽造成4g數據信息
許多國產軟體都會使用基站進行定位,android模擬器是沒有流量卡的,所以沒有基站位置,但是我們可以通過Xposed來讓模擬器擁有指定的基站信息。擁有基站信息的模擬器就可以在地圖app中定位了,這種方式比通過hook修改經緯度要更加好一點,可能大多數軟體都是基站來判斷,而不是經緯度。
基站定位使用到如下概念
通過telephonyManager # getNetworkOperator()獲取得到,它返回一個字元串長度為5的值,前3位就是MCC ,後兩位為MNC
接下來就是我們Xposed出場的時候了,通過真機運行BaseStationInfoDemo項目(包含上面這些方法)得到真實數據信息。將數據記錄並運行HookCellInfoDemo項目(修改了模擬器的基站信息),然後在模擬器上運行BaseStationInfoDemo項目,觀察日誌輸出,並可以在模擬器上打卡網路地圖等地圖軟體觀察當前位置。
getCellLocationMethodHook的實現如下:族含棚
就是在beforeHookedMethod中直接通過setResult將新建的帶有基站LAC和CID信息的GsmCellLocation 返回。
首先看下源碼中NerworkInfo類的實現方式,發現其是一個實現了Parcelable接兆則口的序列化對象,它擁有多個成員變數,這里只需要修改6個,其他的在wifi或者4g網路的情況下的值不變
這樣的話,最終模擬器的網路情況是有wifi圖標,但是在指定包名內獲取到的網老行絡類型和NetworkInfo卻是4g類型的數據,符合我們的業務需求。
附上源碼地址: https://github.com/carrys17/CellInfo
裡面的兩個文件夾分別就是BaseStationInfoDemo項目和HookCellInfoDemo項目