鴻蒙 Next 的 Hypium 投屏外掛原理剖析
最近一直在研究鴻蒙的投屏,之前研究了一番:https://testerhome.com/topics/41418。
後面發現 Hypium 時發現了一個好東西,具體如下:
1、推送一個 so 檔案到手機目錄/data/local/tmp/agent.so,名稱類似:uitest_agent_v1.1.0.so,參考命令:
hdc file send uitest_agent_v1.1.0.so /data/local/tmp/agent.so
2、執行以下命令,載入 so,執行前先殺掉之前的程序(hdc shell kill -9 $(pidof uitest))
hdc shell uitest start-daemon singleness
此時會在手機內部開放一個 8012 埠的類似 jsonrpc(走 tcp socket)
3、使用埠轉發到本地電腦:
hdc fport tcp:8012 tcp:8012
4、使用 socket 連線 8012
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('127.0.0.1', 8012))
5、先透過 jsonrpc 建立 driver 例項,參考以下程式碼:
request_id = datetime.now().strftime("%Y%m%d%H%M%S%f")
params = {
"api": 'Driver.create',
'this': 'Driver#0',
"args": [],
"message_type": "hypium"
}
msg = {
"module": "com.ohos.devicetest.hypiumApiHelper",
"method": "callHypiumApi",
"params": params,
"request_id": request_id
}
6、再傳送開始截圖指令
request_id = datetime.now().strftime("%Y%m%d%H%M%S%f")
params = {
"api": 'startCaptureScreen',
"args": [
{
"scale": 0.5
}
]
}
msg = {
"module": "com.ohos.devicetest.hypiumApiHelper",
"method": "Captures",
"params": params,
"request_id": request_id
}
7、以上指令傳送完後就會不斷收到 JPEG 位元組流,自己按照 JPEG 開始結束標誌解析顯示就可以了
start_flag = b'\xff\xd8'
end_flag = b'\xff\xd9'
8、以上可用於投屏、遠端真機等場景,歡迎技術交流,可關注微信公眾號:鼬測試
相關文章
- 鴻蒙 Next 上好用的投屏工具?鴻蒙
- 鴻蒙Next模糊介面梳理鴻蒙
- 鴻蒙Next安全基石:應用沙箱與許可權機制深度剖析鴻蒙
- 鴻蒙 Next 安全機制之密碼管理:深度剖析與最佳實踐鴻蒙密碼
- 鴻蒙NEXT開發案例:轉盤鴻蒙
- 鴻蒙開發Hvigor外掛動態生成程式碼鴻蒙Go
- 鴻蒙NEXT自定義元件:太極Loading鴻蒙元件
- 鴻蒙NEXT開發案例:指尖輪盤鴻蒙
- 鴻蒙NEXT開發案例:計數器鴻蒙
- 鴻蒙NEXT開發案例:拋硬幣鴻蒙
- 鴻蒙NEXT開發案例:光強儀鴻蒙
- 鴻蒙NEXT開發案例:年齡計算鴻蒙
- 鴻蒙NEXT開發案例:隨機數生成鴻蒙隨機
- 鴻蒙NEXT開發案例:溫度轉換鴻蒙
- 鴻蒙Next-支付寶SDK接入教程鴻蒙
- 鴻蒙Next第三次充電鴻蒙
- 鴻蒙NEXT開發案例:隨機密碼生成鴻蒙隨機密碼
- 鴻蒙NEXT開發案例:血型遺傳計算鴻蒙
- 鴻蒙Next應用本地化:資源管理鴻蒙
- 鴻蒙NEXT開發案例:轉盤1W鴻蒙
- 測試人員如何上手去測試鴻蒙 NEXT鴻蒙
- 鴻蒙(Harmony) NEXT - AlphabetIndexer實現聯絡人字母索引鴻蒙AlphabetIndex索引
- 鴻蒙NEXT開發案例:數字轉中文大小寫鴻蒙
- 鴻蒙NEXT開發案例:二維碼的生成與識別鴻蒙
- 外掛化實現Android多主題功能原理剖析Android
- 鴻蒙HarmonyOS實戰-ArkUI事件(觸屏事件)鴻蒙UI事件
- 鴻蒙NEXT開發案例:親戚關係計算器鴻蒙
- 鴻蒙NEXT開發案例:簡體繁體轉換器鴻蒙
- 鴻蒙Next應用本地化:翻譯場景的重要性鴻蒙
- 鴻蒙NEXT元服務:論如何免費快速上架作品鴻蒙
- 鴻蒙Next安全之應用加密:保障應用程式碼安全鴻蒙加密
- 鴻蒙Next應用介面設計:國際化最佳實踐鴻蒙
- 鴻蒙NEXT使用request模組實現本地檔案上傳鴻蒙
- 鴻蒙NEXT開發中如何確保使用 PersistentStorage 儲存的資料安全?鴻蒙
- 鴻蒙 Next 社交應用中的安全登入與密碼管理實戰鴻蒙密碼
- 鴻蒙 Next 密碼保險箱:賬號密碼管理全流程鴻蒙密碼
- 鴻蒙Next應用國際化:語言與區域設定鴻蒙
- 鴻蒙Next應用國際化:時區與夏令時處理鴻蒙
- 鴻蒙Next應用國際化:時間與日期格式化鴻蒙