最近在玩積木機器人,很遺憾該設備沒有攝像頭,那么我有一個多余的手機,自己實現一下吧。
IMG_0079.JPG
在原App上加入了一個視頻窗口:
IMG_0080.JPG
最終效果:
Untitled.gif
實現思路:
1.兩臺設備建立視頻通信;
2.注入視頻動態庫到 Makeblock APP;
3.前置手機發起視頻請求。
源碼:
https://github.com/bojy123/MakeBlockHook
實現步驟:
1.下載Makeblock,在越獄設備砸殼;
2.利用class-dump導頭:
屏幕快照 2017-01-30 下午4.11.03.png
我們直接去找AppDelegate,在啟動時候初始化必要方法,并將視頻窗口加載到window層上。
3.開發Hook使用的dylib:
這里使用環信SDK進行視頻通訊,需要Hook只有application方法,其余都是環信SDK的使用。
CHDeclareClass(AppDelegate);
CHMethod2(BOOL, AppDelegate, application, id, arg1, didFinishLaunchingWithOptions, id, arg2) {
BOOL value = CHSuper2(AppDelegate, application, arg1, didFinishLaunchingWithOptions, arg2);
// 獲取屬性,可以在keyWindow上加載視圖
Ivar ivar = class_getInstanceVariable([self class], "_window");
UIWindow *keyWindow = object_getIvar(self, ivar);
// *****初始化環信SDK*****
return value;
}
__attribute__((constructor)) static void entry() {
CHLoadLateClass(AppDelegate);
CHHook2(AppDelegate, application, didFinishLaunchingWithOptions);
}
4.利用yololib注入dylib到Makeblock app中:
./yololib [被插入dylib的二進制文件] [要插入的dylib]