Quantcast
Channel: 應用教學 – Hiraku Dev
Viewing all articles
Browse latest Browse all 94

在 Electra 下讓 Gogoro 正常執行

$
0
0

iOS 11 的 Electra JB 釋出有一段時間了,但是身為 Gogoro 車主,一直有一個困擾,就是 Electra 一旦啟用後,會造成 Gogoro App 在開啟時就 crash。

根據一些研究之後,發現是因為 

[NSBundle mainBundle]
 在 TweakInject 的時候,可能當時 Gogoro 的 App 尚未初始化完畢,導致會出錯。

因此,我寫了一個 Loader 來替換原本的 TweakInjector,故意用延遲的方式來讓 Gogoro App 初始化之後再載入原本的 Injector,就可以了。

#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(等於放在原本的位置) 即可。需要注意的是,一旦 TweakInject 在 Cydia 有更新,在更新之後必須重複上面步驟一次,這樣就可以了。

這篇文章 在 Electra 下讓 Gogoro 正常執行 最早出現於 Hiraku Dev


Viewing all articles
Browse latest Browse all 94

Trending Articles