-
-
Save zhuowei/acf4257d1b79c000affcb5954c2dc7f1 to your computer and use it in GitHub Desktop.
| @import Darwin; | |
| @import ObjectiveC; | |
| @import CloudKit; | |
| extern bool GEOConfigGetBOOL(int feature, void* something); | |
| // Hooks feature flags in a resigned Maps.app to return true. | |
| // Usage: | |
| // clang -shared -fmodules -o libmaps_inject.dylib maps_inject.m \ | |
| // "$(xcrun | |
| // --show-sdk-path)/System/Library/PrivateFrameworks/GeoServices.framework/GeoServices.tbd" | |
| // cp -a /System/Applications/Maps.app ./ | |
| // codesign --remove Maps.app/Contents/MacOS/Maps | |
| // DYLD_INSERT_LIBRARIES=./libmaps_inject.dylib Maps.app/Contents/MacOS/Maps | |
| #define DYLD_INTERPOSE(_replacement, _replacee) \ | |
| __attribute__((used)) static struct { \ | |
| const void* replacement; \ | |
| const void* replacee; \ | |
| } _interpose_##_replacee __attribute__((section("__DATA,__interpose"))) = { \ | |
| (const void*)(unsigned long)&_replacement, (const void*)(unsigned long)&_replacee} | |
| bool wdb_GEOConfigGetBOOL(int feature, void* something) { | |
| if (feature == 5) { | |
| NSLog(@"config get VectorKitDebugConfig_AllowNonSupportedDeviceAdvancedMap"); | |
| return true; | |
| } | |
| NSLog(@"config get bool %d", feature); | |
| return GEOConfigGetBOOL(feature, something); | |
| } | |
| DYLD_INTERPOSE(wdb_GEOConfigGetBOOL, GEOConfigGetBOOL); | |
| // Our resigned Maps app doesn't have iCloud access, so disable iCloud. | |
| // (Not necessary if you're running with SIP off and injecting into the real | |
| // Maps app) | |
| id wdb_CKContainer_initWithContainerID_hook() { return nil; } | |
| id wdb_CKContainer_initWithContainerID_options_hook() { return nil; } | |
| __attribute__((constructor)) void wdb_hook_init() { | |
| Class ckContainerClass = [CKContainer class]; | |
| Method method1 = class_getInstanceMethod(ckContainerClass, @selector(initWithContainerID:)); | |
| method_setImplementation(method1, (IMP)&wdb_CKContainer_initWithContainerID_hook); | |
| Method method2 = class_getInstanceMethod(ckContainerClass, @selector(initWithContainerID: | |
| options:)); | |
| method_setImplementation(method2, (IMP)&wdb_CKContainer_initWithContainerID_options_hook); | |
| } |
@Hanly-Wijaya are you using the Xcode 13.0 beta? You'll need it.
(I would post a pre-patched Maps.app, but don't want to get into trouble with copyright)
Here's a precompiled dylib if you can't get Xcode working: https://drive.google.com/file/d/1M2pRFCwHrzlqvfLSCaSH6sVlF6aXw6SQ/view?usp=sharing
Yup, I used Xcode 13 beta. I'll try the file you linked! Hope it goes well!
@Hanly-Wijaya are you using the Xcode 13.0 beta? You'll need it.
(I would post a pre-patched Maps.app, but don't want to get into trouble with copyright)
Here's a precompiled dylib if you can't get Xcode working: https://drive.google.com/file/d/1M2pRFCwHrzlqvfLSCaSH6sVlF6aXw6SQ/view?usp=sharingYup, I used Xcode 13 beta. I'll try the file you linked! Hope it goes well!
It worked! Thank you!!
any idea how to get SharePlay for FaceTime for intel-macs
Thank you for the solution.
On Ventura: 3D globe view is still fully functional, but 3D city maps seem to crash every time you zoom in to a city with that feature, i.e. San Francisco, Paris, London etc. Hopefully there is still a fix for this.
when you turn SIP on it restores the default version? Thx!