最近在玩積木機器人泛源,很遺憾該設(shè)備沒有攝像頭,那么我有一個多余的手機忿危,自己實現(xiàn)一下吧达箍。
在原App上加入了一個視頻窗口:
最終效果:
實現(xiàn)思路:
1.兩臺設(shè)備建立視頻通信;
2.注入視頻動態(tài)庫到 Makeblock APP铺厨;
3.前置手機發(fā)起視頻請求缎玫。
源碼:
https://github.com/bojy123/MakeBlockHook
實現(xiàn)步驟:
1.下載Makeblock,在越獄設(shè)備砸殼解滓;
2.利用class-dump導(dǎo)頭:
我們直接去找AppDelegate赃磨,在啟動時候初始化必要方法,并將視頻窗口加載到window層上洼裤。
3.開發(fā)Hook使用的dylib:
這里使用環(huán)信SDK進行視頻通訊邻辉,需要Hook只有application方法,其余都是環(huán)信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);
// *****初始化環(huán)信SDK*****
return value;
}
__attribute__((constructor)) static void entry() {
CHLoadLateClass(AppDelegate);
CHHook2(AppDelegate, application, didFinishLaunchingWithOptions);
}
4.利用yololib注入dylib到Makeblock app中:
./yololib [被插入dylib的二進制文件] [要插入的dylib]