iOS 11 的 Electra JB 釋出有一段時間了,但是身為 Gogoro 車主,一直有一個困擾,就是 Electra 一旦啟用後,會造成 Gogoro App 在開啟時就 crash。
根據一些研究之後,發現是因為
[NSBundle mainBundle]
在 TweakInject 的時候,可能當時 Gogoro 的 App 尚未初始化完畢,導致會出錯。
因此,我寫了一個 Loader 來替換原本的 TweakInjector,故意用延遲的方式來讓 Gogoro App 初始化之後再載入原本的 Injector,就可以了。
1 2 3 4 5 6 7 8 9 10 11 12 |
#import <dlfcn.h> #import <objc/runtime.h> __attribute__ ((constructor)) static void ctor(void) { @autoreleasepool { void *dl = dlopen([@"/usr/lib/TweakInject2.dylib" UTF8String], RTLD_LAZY | RTLD_GLOBAL); if (dl == NULL) { NSLog(@"Injection failed: '%s'", dlerror()); } } } |
不會編譯沒關係,有檔案可以直接下載:
https://github.com/hirakujira/TweakInjector_delay/releases
使用方法也很簡單,進去 SSH 之後,找到 /usr/lib/TweakInject.dylib,改名為 TweakInject2.dylib,然後把下載的修正檔放在 /usr/lib/TweakInject.dylib(等於放在原本的位置) 即可。
如果替換之後仍然無法使用,嘗試重新開機並 JB 再試試看。需要注意的是,一旦 TweakInject 在 Cydia 有更新,在更新之後必須重複上面步驟一次,這樣就可以了。
請問可以開發一個unc0ver的版本嗎?替換過去後發現似乎檔案是不同的?
雖說我也很希望推出unc0ver版,自己有將TweakInject.dylib改為tweakloader.dylib是可以開啟gogoro app,但是其他tweak好像沒作用了。
有空我研究看看,有消息會發佈在粉專
有空我研究看看,有消息會發佈在粉專
請問皮樂姐,Tweakinjector 更新到1.0.9-sileo後,照您的方法還是可以正常運作gogoro app,不過其他插件大多失效,煩請皮樂姐可否編譯新的替換檔給狗肉車友使用,造福大家,感謝
替換檔只是延遲載入 TweakInjector 沒有其他功能耶…所以可能無解,重點是要跟原作者反映 TweakInjector 本身有 bug