├── LICENSE ├── Packages └── Tozy.TZLoadAllLibs_0.1-1_iphoneos-arm.deb ├── README.md ├── Resources └── console.png ├── TZLoadAllLibs.xcodeproj └── project.pbxproj └── TZLoadAllLibs ├── Package ├── DEBIAN │ └── control └── Library │ ├── MobileSubstrate │ └── DynamicLibraries │ │ └── TZLoadAllLibs.plist │ └── PreferenceLoader │ └── Preferences │ ├── TZLoadAllLibs.plist │ ├── TZLoadAllLibsIcon.png │ └── TZLoadAllLibsIcon@2x.png ├── TZLoadAllLibs-Prefix.pch └── TZLoadAllLibs.mm /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Packages/Tozy.TZLoadAllLibs_0.1-1_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TozyZuo/TZLoadAllLibs/e6d4cb4f6ebec047491252c56bef2d722e81fafe/Packages/Tozy.TZLoadAllLibs_0.1-1_iphoneos-arm.deb -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TZLoadAllLibs 2 | 有些app有很多动态库,但是app刚起来的时候不一定会全部加载,导致砸壳不完全。该tweak用于解决这一问题。在设置app里选择要应用的app即可,砸完记得关闭该app。 3 | 4 | 插件依赖applist和preferenceloader 5 | 6 | 7 | ![avatar](https://github.com/TozyZuo/TZLoadAllLibs/raw/master/Resources/console.png) -------------------------------------------------------------------------------- /Resources/console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TozyZuo/TZLoadAllLibs/e6d4cb4f6ebec047491252c56bef2d722e81fafe/Resources/console.png -------------------------------------------------------------------------------- /TZLoadAllLibs.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | BA9C3B50213FD93600AFE398 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA9C3B4F213FD93600AFE398 /* Foundation.framework */; }; 11 | BA9C3B5E213FD93600AFE398 /* TZLoadAllLibs.mm in Sources */ = {isa = PBXBuildFile; fileRef = BA9C3B5D213FD93600AFE398 /* TZLoadAllLibs.mm */; }; 12 | /* End PBXBuildFile section */ 13 | 14 | /* Begin PBXFileReference section */ 15 | BA9C3B4C213FD93600AFE398 /* TZLoadAllLibs.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = TZLoadAllLibs.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 16 | BA9C3B4F213FD93600AFE398 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 17 | BA9C3B54213FD93600AFE398 /* control */ = {isa = PBXFileReference; lastKnownFileType = text; name = control; path = Package/DEBIAN/control; sourceTree = ""; }; 18 | BA9C3B58213FD93600AFE398 /* TZLoadAllLibs.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = TZLoadAllLibs.plist; path = Package/Library/PreferenceLoader/Preferences/TZLoadAllLibs.plist; sourceTree = ""; }; 19 | BA9C3B59213FD93600AFE398 /* TZLoadAllLibsIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TZLoadAllLibsIcon.png; path = Package/Library/PreferenceLoader/Preferences/TZLoadAllLibsIcon.png; sourceTree = ""; }; 20 | BA9C3B5A213FD93600AFE398 /* TZLoadAllLibsIcon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "TZLoadAllLibsIcon@2x.png"; path = "Package/Library/PreferenceLoader/Preferences/TZLoadAllLibsIcon@2x.png"; sourceTree = ""; }; 21 | BA9C3B5C213FD93600AFE398 /* TZLoadAllLibs-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TZLoadAllLibs-Prefix.pch"; sourceTree = ""; }; 22 | BA9C3B5D213FD93600AFE398 /* TZLoadAllLibs.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = TZLoadAllLibs.mm; sourceTree = ""; }; 23 | BA9C3B61213FD93600AFE398 /* TZLoadAllLibs.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = TZLoadAllLibs.plist; path = Package/Library/MobileSubstrate/DynamicLibraries/TZLoadAllLibs.plist; sourceTree = ""; }; 24 | /* End PBXFileReference section */ 25 | 26 | /* Begin PBXFrameworksBuildPhase section */ 27 | BA9C3B48213FD93600AFE398 /* Frameworks */ = { 28 | isa = PBXFrameworksBuildPhase; 29 | buildActionMask = 2147483647; 30 | files = ( 31 | BA9C3B50213FD93600AFE398 /* Foundation.framework in Frameworks */, 32 | ); 33 | runOnlyForDeploymentPostprocessing = 0; 34 | }; 35 | /* End PBXFrameworksBuildPhase section */ 36 | 37 | /* Begin PBXGroup section */ 38 | BA9C3B42213FD93600AFE398 = { 39 | isa = PBXGroup; 40 | children = ( 41 | BA9C3B51213FD93600AFE398 /* TZLoadAllLibs */, 42 | BA9C3B4E213FD93600AFE398 /* Frameworks */, 43 | BA9C3B4D213FD93600AFE398 /* Products */, 44 | ); 45 | sourceTree = ""; 46 | }; 47 | BA9C3B4D213FD93600AFE398 /* Products */ = { 48 | isa = PBXGroup; 49 | children = ( 50 | BA9C3B4C213FD93600AFE398 /* TZLoadAllLibs.dylib */, 51 | ); 52 | name = Products; 53 | sourceTree = ""; 54 | }; 55 | BA9C3B4E213FD93600AFE398 /* Frameworks */ = { 56 | isa = PBXGroup; 57 | children = ( 58 | BA9C3B4F213FD93600AFE398 /* Foundation.framework */, 59 | ); 60 | name = Frameworks; 61 | sourceTree = ""; 62 | }; 63 | BA9C3B51213FD93600AFE398 /* TZLoadAllLibs */ = { 64 | isa = PBXGroup; 65 | children = ( 66 | BA9C3B5D213FD93600AFE398 /* TZLoadAllLibs.mm */, 67 | BA9C3B52213FD93600AFE398 /* Package */, 68 | BA9C3B5B213FD93600AFE398 /* Supporting Files */, 69 | ); 70 | path = TZLoadAllLibs; 71 | sourceTree = ""; 72 | }; 73 | BA9C3B52213FD93600AFE398 /* Package */ = { 74 | isa = PBXGroup; 75 | children = ( 76 | BA9C3B53213FD93600AFE398 /* DEBIAN */, 77 | BA9C3B55213FD93600AFE398 /* Library */, 78 | ); 79 | name = Package; 80 | sourceTree = ""; 81 | }; 82 | BA9C3B53213FD93600AFE398 /* DEBIAN */ = { 83 | isa = PBXGroup; 84 | children = ( 85 | BA9C3B54213FD93600AFE398 /* control */, 86 | ); 87 | name = DEBIAN; 88 | sourceTree = ""; 89 | }; 90 | BA9C3B55213FD93600AFE398 /* Library */ = { 91 | isa = PBXGroup; 92 | children = ( 93 | BA9C3B56213FD93600AFE398 /* PreferenceLoader */, 94 | BA9C3B5F213FD93600AFE398 /* MobileSubstrate */, 95 | ); 96 | name = Library; 97 | sourceTree = ""; 98 | }; 99 | BA9C3B56213FD93600AFE398 /* PreferenceLoader */ = { 100 | isa = PBXGroup; 101 | children = ( 102 | BA9C3B57213FD93600AFE398 /* Preferences */, 103 | ); 104 | name = PreferenceLoader; 105 | sourceTree = ""; 106 | }; 107 | BA9C3B57213FD93600AFE398 /* Preferences */ = { 108 | isa = PBXGroup; 109 | children = ( 110 | BA9C3B58213FD93600AFE398 /* TZLoadAllLibs.plist */, 111 | BA9C3B59213FD93600AFE398 /* TZLoadAllLibsIcon.png */, 112 | BA9C3B5A213FD93600AFE398 /* TZLoadAllLibsIcon@2x.png */, 113 | ); 114 | name = Preferences; 115 | sourceTree = ""; 116 | }; 117 | BA9C3B5B213FD93600AFE398 /* Supporting Files */ = { 118 | isa = PBXGroup; 119 | children = ( 120 | BA9C3B5C213FD93600AFE398 /* TZLoadAllLibs-Prefix.pch */, 121 | ); 122 | name = "Supporting Files"; 123 | sourceTree = ""; 124 | }; 125 | BA9C3B5F213FD93600AFE398 /* MobileSubstrate */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | BA9C3B60213FD93600AFE398 /* DynamicLibraries */, 129 | ); 130 | name = MobileSubstrate; 131 | sourceTree = ""; 132 | }; 133 | BA9C3B60213FD93600AFE398 /* DynamicLibraries */ = { 134 | isa = PBXGroup; 135 | children = ( 136 | BA9C3B61213FD93600AFE398 /* TZLoadAllLibs.plist */, 137 | ); 138 | name = DynamicLibraries; 139 | sourceTree = ""; 140 | }; 141 | /* End PBXGroup section */ 142 | 143 | /* Begin PBXHeadersBuildPhase section */ 144 | BA9C3B49213FD93600AFE398 /* Headers */ = { 145 | isa = PBXHeadersBuildPhase; 146 | buildActionMask = 2147483647; 147 | files = ( 148 | ); 149 | runOnlyForDeploymentPostprocessing = 0; 150 | }; 151 | /* End PBXHeadersBuildPhase section */ 152 | 153 | /* Begin PBXNativeTarget section */ 154 | BA9C3B4B213FD93600AFE398 /* TZLoadAllLibs */ = { 155 | isa = PBXNativeTarget; 156 | buildConfigurationList = BA9C3B64213FD93600AFE398 /* Build configuration list for PBXNativeTarget "TZLoadAllLibs" */; 157 | buildPhases = ( 158 | BA9C3B47213FD93600AFE398 /* Sources */, 159 | BA9C3B48213FD93600AFE398 /* Frameworks */, 160 | BA9C3B49213FD93600AFE398 /* Headers */, 161 | BA9C3B4A213FD93600AFE398 /* ShellScript */, 162 | ); 163 | buildRules = ( 164 | ); 165 | dependencies = ( 166 | ); 167 | name = TZLoadAllLibs; 168 | productName = TZLoadAllLibs; 169 | productReference = BA9C3B4C213FD93600AFE398 /* TZLoadAllLibs.dylib */; 170 | productType = "com.apple.product-type.library.dynamic"; 171 | }; 172 | /* End PBXNativeTarget section */ 173 | 174 | /* Begin PBXProject section */ 175 | BA9C3B43213FD93600AFE398 /* Project object */ = { 176 | isa = PBXProject; 177 | attributes = { 178 | LastUpgradeCheck = 1010; 179 | TargetAttributes = { 180 | BA9C3B4B213FD93600AFE398 = { 181 | CreatedOnToolsVersion = 10.0; 182 | }; 183 | }; 184 | }; 185 | buildConfigurationList = BA9C3B46213FD93600AFE398 /* Build configuration list for PBXProject "TZLoadAllLibs" */; 186 | compatibilityVersion = "Xcode 9.3"; 187 | developmentRegion = en; 188 | hasScannedForEncodings = 0; 189 | knownRegions = ( 190 | en, 191 | ); 192 | mainGroup = BA9C3B42213FD93600AFE398; 193 | productRefGroup = BA9C3B4D213FD93600AFE398 /* Products */; 194 | projectDirPath = ""; 195 | projectRoot = ""; 196 | targets = ( 197 | BA9C3B4B213FD93600AFE398 /* TZLoadAllLibs */, 198 | ); 199 | }; 200 | /* End PBXProject section */ 201 | 202 | /* Begin PBXShellScriptBuildPhase section */ 203 | BA9C3B4A213FD93600AFE398 /* ShellScript */ = { 204 | isa = PBXShellScriptBuildPhase; 205 | buildActionMask = 12; 206 | files = ( 207 | ); 208 | inputFileListPaths = ( 209 | ); 210 | inputPaths = ( 211 | ); 212 | outputFileListPaths = ( 213 | ); 214 | outputPaths = ( 215 | ); 216 | runOnlyForDeploymentPostprocessing = 0; 217 | shellPath = /bin/sh; 218 | shellScript = "/opt/MonkeyDev/bin/md --xcbp\n"; 219 | }; 220 | /* End PBXShellScriptBuildPhase section */ 221 | 222 | /* Begin PBXSourcesBuildPhase section */ 223 | BA9C3B47213FD93600AFE398 /* Sources */ = { 224 | isa = PBXSourcesBuildPhase; 225 | buildActionMask = 2147483647; 226 | files = ( 227 | BA9C3B5E213FD93600AFE398 /* TZLoadAllLibs.mm in Sources */, 228 | ); 229 | runOnlyForDeploymentPostprocessing = 0; 230 | }; 231 | /* End PBXSourcesBuildPhase section */ 232 | 233 | /* Begin XCBuildConfiguration section */ 234 | BA9C3B62213FD93600AFE398 /* Release */ = { 235 | isa = XCBuildConfiguration; 236 | buildSettings = { 237 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 238 | CLANG_WARN_BOOL_CONVERSION = YES; 239 | CLANG_WARN_COMMA = YES; 240 | CLANG_WARN_CONSTANT_CONVERSION = YES; 241 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 242 | CLANG_WARN_EMPTY_BODY = YES; 243 | CLANG_WARN_ENUM_CONVERSION = YES; 244 | CLANG_WARN_INFINITE_RECURSION = YES; 245 | CLANG_WARN_INT_CONVERSION = YES; 246 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 247 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 248 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 249 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 250 | CLANG_WARN_STRICT_PROTOTYPES = YES; 251 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 252 | CLANG_WARN_UNREACHABLE_CODE = YES; 253 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 254 | CODE_SIGN_IDENTITY = "iPhone Developer"; 255 | COPY_PHASE_STRIP = YES; 256 | ENABLE_STRICT_OBJC_MSGSEND = YES; 257 | EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = "*.nib *.lproj *.gch (*) .DS_Store CVS .svn .git .hg *.xcodeproj *.xcode *.pbproj *.pbxproj"; 258 | FRAMEWORK_SEARCH_PATHS = ( 259 | "$(MonkeyDevPath)/frameworks/**", 260 | "$(MonkeyDevTheosPath)/vendor/lib", 261 | ); 262 | GCC_C_LANGUAGE_STANDARD = gnu99; 263 | GCC_NO_COMMON_BLOCKS = YES; 264 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 265 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 266 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 267 | GCC_WARN_UNDECLARED_SELECTOR = YES; 268 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 269 | GCC_WARN_UNUSED_FUNCTION = YES; 270 | GCC_WARN_UNUSED_VARIABLE = YES; 271 | HEADER_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/include/**"; 272 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 273 | LIBRARY_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/lib/**"; 274 | MonkeyDevPath = /opt/MonkeyDev; 275 | MonkeyDevTheosPath = /opt/theos; 276 | OTHER_CFLAGS = "-DTHEOS_INSTANCE_NAME=\"\\\"TZLoadAllLibs\\\"\""; 277 | SDKROOT = iphoneos; 278 | TARGETED_DEVICE_FAMILY = "1,2"; 279 | VALIDATE_PRODUCT = YES; 280 | }; 281 | name = Release; 282 | }; 283 | BA9C3B63213FD93600AFE398 /* Debug */ = { 284 | isa = XCBuildConfiguration; 285 | buildSettings = { 286 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 287 | CLANG_WARN_BOOL_CONVERSION = YES; 288 | CLANG_WARN_COMMA = YES; 289 | CLANG_WARN_CONSTANT_CONVERSION = YES; 290 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 291 | CLANG_WARN_EMPTY_BODY = YES; 292 | CLANG_WARN_ENUM_CONVERSION = YES; 293 | CLANG_WARN_INFINITE_RECURSION = YES; 294 | CLANG_WARN_INT_CONVERSION = YES; 295 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 296 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 297 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 298 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 299 | CLANG_WARN_STRICT_PROTOTYPES = YES; 300 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 301 | CLANG_WARN_UNREACHABLE_CODE = YES; 302 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 303 | CODE_SIGN_IDENTITY = "iPhone Developer"; 304 | COPY_PHASE_STRIP = NO; 305 | ENABLE_STRICT_OBJC_MSGSEND = YES; 306 | ENABLE_TESTABILITY = YES; 307 | EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = "*.nib *.lproj *.gch (*) .DS_Store CVS .svn .git .hg *.xcodeproj *.xcode *.pbproj *.pbxproj"; 308 | FRAMEWORK_SEARCH_PATHS = ( 309 | "$(MonkeyDevPath)/frameworks/**", 310 | "$(MonkeyDevTheosPath)/vendor/lib", 311 | ); 312 | GCC_C_LANGUAGE_STANDARD = gnu99; 313 | GCC_DYNAMIC_NO_PIC = NO; 314 | GCC_NO_COMMON_BLOCKS = YES; 315 | GCC_OPTIMIZATION_LEVEL = 0; 316 | GCC_PREPROCESSOR_DEFINITIONS = ( 317 | "DEBUG=1", 318 | "$(inherited)", 319 | ); 320 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 321 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 322 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 323 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 324 | GCC_WARN_UNDECLARED_SELECTOR = YES; 325 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 326 | GCC_WARN_UNUSED_FUNCTION = YES; 327 | GCC_WARN_UNUSED_VARIABLE = YES; 328 | HEADER_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/include/**"; 329 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 330 | LIBRARY_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/lib/**"; 331 | MonkeyDevPath = /opt/MonkeyDev; 332 | MonkeyDevTheosPath = /opt/theos; 333 | ONLY_ACTIVE_ARCH = YES; 334 | OTHER_CFLAGS = "-DTHEOS_INSTANCE_NAME=\"\\\"TZLoadAllLibs\\\"\""; 335 | SDKROOT = iphoneos; 336 | TARGETED_DEVICE_FAMILY = "1,2"; 337 | VALIDATE_PRODUCT = NO; 338 | }; 339 | name = Debug; 340 | }; 341 | BA9C3B65213FD93600AFE398 /* Release */ = { 342 | isa = XCBuildConfiguration; 343 | buildSettings = { 344 | ALWAYS_SEARCH_USER_PATHS = NO; 345 | CLANG_ENABLE_OBJC_ARC = YES; 346 | CODE_SIGN_IDENTITY = ""; 347 | CODE_SIGN_STYLE = Automatic; 348 | DEVELOPMENT_TEAM = H6D9Z3495Q; 349 | DYLIB_COMPATIBILITY_VERSION = 1; 350 | DYLIB_CURRENT_VERSION = 1; 351 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 352 | GCC_PREFIX_HEADER = "TZLoadAllLibs/TZLoadAllLibs-Prefix.pch"; 353 | HEADER_SEARCH_PATHS = ( 354 | "$(MonkeyDevPath)/include", 355 | "$(MonkeyDevTheosPath)/vendor/include/**", 356 | ); 357 | INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries; 358 | MonkeyDevBuildPackageOnAnyBuild = NO; 359 | MonkeyDevClearUiCacheOnInstall = NO; 360 | MonkeyDevCopyOnBuild = NO; 361 | MonkeyDevDeviceIP = ""; 362 | MonkeyDevDevicePassword = ""; 363 | MonkeyDevDevicePort = 2222; 364 | MonkeyDevInstallOnAnyBuild = YES; 365 | MonkeyDevInstallOnProfiling = YES; 366 | MonkeyDevkillProcessOnInstall = SpringBoard; 367 | PRODUCT_NAME = "$(TARGET_NAME)"; 368 | TARGETED_DEVICE_FAMILY = "1,2"; 369 | }; 370 | name = Release; 371 | }; 372 | BA9C3B66213FD93600AFE398 /* Debug */ = { 373 | isa = XCBuildConfiguration; 374 | buildSettings = { 375 | ALWAYS_SEARCH_USER_PATHS = NO; 376 | CLANG_ENABLE_OBJC_ARC = YES; 377 | CODE_SIGN_IDENTITY = ""; 378 | CODE_SIGN_STYLE = Automatic; 379 | DEVELOPMENT_TEAM = H6D9Z3495Q; 380 | DYLIB_COMPATIBILITY_VERSION = 1; 381 | DYLIB_CURRENT_VERSION = 1; 382 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 383 | GCC_PREFIX_HEADER = "TZLoadAllLibs/TZLoadAllLibs-Prefix.pch"; 384 | HEADER_SEARCH_PATHS = ( 385 | "$(MonkeyDevPath)/include", 386 | "$(MonkeyDevTheosPath)/vendor/include/**", 387 | ); 388 | INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries; 389 | MonkeyDevBuildPackageOnAnyBuild = NO; 390 | MonkeyDevClearUiCacheOnInstall = NO; 391 | MonkeyDevCopyOnBuild = NO; 392 | MonkeyDevDeviceIP = ""; 393 | MonkeyDevDevicePassword = ""; 394 | MonkeyDevDevicePort = 2222; 395 | MonkeyDevInstallOnAnyBuild = YES; 396 | MonkeyDevInstallOnProfiling = YES; 397 | MonkeyDevkillProcessOnInstall = SpringBoard; 398 | PRODUCT_NAME = "$(TARGET_NAME)"; 399 | TARGETED_DEVICE_FAMILY = "1,2"; 400 | }; 401 | name = Debug; 402 | }; 403 | /* End XCBuildConfiguration section */ 404 | 405 | /* Begin XCConfigurationList section */ 406 | BA9C3B46213FD93600AFE398 /* Build configuration list for PBXProject "TZLoadAllLibs" */ = { 407 | isa = XCConfigurationList; 408 | buildConfigurations = ( 409 | BA9C3B62213FD93600AFE398 /* Release */, 410 | BA9C3B63213FD93600AFE398 /* Debug */, 411 | ); 412 | defaultConfigurationIsVisible = 0; 413 | defaultConfigurationName = Release; 414 | }; 415 | BA9C3B64213FD93600AFE398 /* Build configuration list for PBXNativeTarget "TZLoadAllLibs" */ = { 416 | isa = XCConfigurationList; 417 | buildConfigurations = ( 418 | BA9C3B65213FD93600AFE398 /* Release */, 419 | BA9C3B66213FD93600AFE398 /* Debug */, 420 | ); 421 | defaultConfigurationIsVisible = 0; 422 | defaultConfigurationName = Release; 423 | }; 424 | /* End XCConfigurationList section */ 425 | }; 426 | rootObject = BA9C3B43213FD93600AFE398 /* Project object */; 427 | } 428 | -------------------------------------------------------------------------------- /TZLoadAllLibs/Package/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: Tozy.TZLoadAllLibs 2 | Name: TZLoadAllLibs 3 | Version: 0.1-1 4 | Description: app启动加载全部动态库 5 | Section: Tweaks 6 | Depends: mobilesubstrate, applist, preferenceloader 7 | Conflicts: 8 | Replaces: 9 | Priority: optional 10 | Architecture: iphoneos-arm 11 | Author: TozyZuo 12 | dev: 13 | Homepage: 14 | Depiction: 15 | Maintainer: TozyZuo 16 | Icon: 17 | 18 | -------------------------------------------------------------------------------- /TZLoadAllLibs/Package/Library/MobileSubstrate/DynamicLibraries/TZLoadAllLibs.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Filter 6 | 7 | Bundles 8 | 9 | com.apple.UIKit 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /TZLoadAllLibs/Package/Library/PreferenceLoader/Preferences/TZLoadAllLibs.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | entry 6 | 7 | cell 8 | PSLinkCell 9 | icon 10 | TZLoadAllLibsIcon.png 11 | label 12 | TZLoadAllLibs 13 | 14 | title 15 | TZLoadAllLibs 16 | items 17 | 18 | 19 | cell 20 | PSLinkCell 21 | bundle 22 | AppList 23 | label 24 | 设置生效App 25 | isController 26 | 27 | ALAllowsSelection 28 | 29 | ALSettingsKeyPrefix 30 | Enabled- 31 | ALSettingsPath 32 | /var/mobile/Library/Preferences/Tozy.TZLoadAllLibs.plist 33 | ALSectionDescriptors 34 | 35 | 36 | cell-class-name 37 | ALSwitchCell 38 | icon-size 39 | 29 40 | predicate 41 | isSystemApplication = FALSE 42 | suppress-hidden-apps 43 | 44 | title 45 | User Applications 46 | 47 | 48 | cell-class-name 49 | ALSwitchCell 50 | icon-size 51 | 29 52 | predicate 53 | isSystemApplication = TRUE 54 | suppress-hidden-apps 55 | 56 | title 57 | System Applications 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /TZLoadAllLibs/Package/Library/PreferenceLoader/Preferences/TZLoadAllLibsIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TozyZuo/TZLoadAllLibs/e6d4cb4f6ebec047491252c56bef2d722e81fafe/TZLoadAllLibs/Package/Library/PreferenceLoader/Preferences/TZLoadAllLibsIcon.png -------------------------------------------------------------------------------- /TZLoadAllLibs/Package/Library/PreferenceLoader/Preferences/TZLoadAllLibsIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TozyZuo/TZLoadAllLibs/e6d4cb4f6ebec047491252c56bef2d722e81fafe/TZLoadAllLibs/Package/Library/PreferenceLoader/Preferences/TZLoadAllLibsIcon@2x.png -------------------------------------------------------------------------------- /TZLoadAllLibs/TZLoadAllLibs-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'TZLoadAllLibs' target in the 'TZLoadAllLibs' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /TZLoadAllLibs/TZLoadAllLibs.mm: -------------------------------------------------------------------------------- 1 | // 2 | // TZLoadAllLibs.mm 3 | // TZLoadAllLibs 4 | // 5 | // Created by TozyZuo on 2018/9/5. 6 | // Copyright (c) 2018年 ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | // CaptainHook by Ryan Petrich 10 | // see https://github.com/rpetrich/CaptainHook/ 11 | 12 | #if TARGET_OS_SIMULATOR 13 | #error Do not support the simulator, please use the real iPhone Device. 14 | #endif 15 | 16 | #import 17 | #import 18 | #import 19 | #import "CaptainHook/CaptainHook.h" 20 | 21 | static NSDictionary *TZLoadLibsInDirectoryWithLoadedDylibPaths(NSString *directoryPath, NSArray *loadedDylibPaths) 22 | { 23 | NSMutableDictionary *dic = [[NSMutableDictionary alloc] init]; 24 | NSFileManager *fm = NSFileManager.defaultManager; 25 | for (NSString *fileName in [fm contentsOfDirectoryAtPath:directoryPath error:nil]) { 26 | NSString *filePath = [directoryPath stringByAppendingPathComponent:fileName]; 27 | if ([fileName hasSuffix:@".framework"]) { 28 | NSBundle *bundle = [NSBundle bundleWithPath:filePath]; 29 | if (bundle.isLoaded) { 30 | NSLog(@"TZLoadAllLibs: Bundle has been loaded. %@ %@", fileName, bundle); 31 | } else { 32 | if ([bundle load]) { 33 | NSLog(@"TZLoadAllLibs: Load bundle success. %@ %@", fileName, bundle); 34 | } else { 35 | NSLog(@"TZLoadAllLibs: Load bundle failed. %@ %@", fileName, bundle); 36 | } 37 | } 38 | dic[fileName] = @""; 39 | } else if ([fileName hasSuffix:@".bundle"] || 40 | [fileName hasSuffix:@".momd"] || 41 | [fileName hasSuffix:@".strings"] || 42 | [fileName hasSuffix:@".appex"] || 43 | [fileName hasSuffix:@".app"] || 44 | [fileName hasSuffix:@".lproj"] || 45 | [fileName hasSuffix:@".storyboardc"]) { 46 | dic[fileName] = @""; 47 | } 48 | else { 49 | BOOL isDirectory; 50 | [fm fileExistsAtPath:filePath isDirectory:&isDirectory]; 51 | if (isDirectory) { 52 | dic[fileName] = TZLoadLibsInDirectoryWithLoadedDylibPaths(filePath, loadedDylibPaths); 53 | } else { 54 | if ([fileName hasSuffix:@".dylib"]) { 55 | if ([loadedDylibPaths containsObject:filePath]) { 56 | NSLog(@"TZLoadAllLibs: dylib has been loaded. %@ %@", fileName, filePath); 57 | } else { 58 | if (dlopen(filePath.UTF8String, RTLD_GLOBAL | RTLD_LAZY)) { 59 | NSLog(@"TZLoadAllLibs: Load dylib success. %@ %@", fileName, filePath); 60 | } else { 61 | NSLog(@"TZLoadAllLibs: Load dylib failed. %@ %@", fileName, filePath); 62 | } 63 | } 64 | } 65 | dic[fileName] = @""; 66 | } 67 | } 68 | } 69 | 70 | return dic; 71 | } 72 | 73 | CHConstructor // code block that runs immediately upon load 74 | { 75 | @autoreleasepool 76 | { 77 | NSString *appID = NSBundle.mainBundle.bundleIdentifier; 78 | if (!appID) { 79 | appID = NSProcessInfo.processInfo.processName;//A Fix By https://github.com/radj 80 | NSLog(@"TZLoadAllLibs: Process has no bundle ID, use process name instead: %@", appID); 81 | } 82 | NSLog(@"TZLoadAllLibs: %@ detected", appID); 83 | 84 | if ([[NSDictionary dictionaryWithContentsOfFile:@"/var/mobile/Library/Preferences/Tozy.TZLoadAllLibs.plist"][[NSString stringWithFormat:@"Enabled-%@", appID]] boolValue]) 85 | { 86 | dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 87 | 88 | [NSBundle allFrameworks]; // 这句执行完所需framework应该都加载了 89 | 90 | NSMutableArray *loadedDylibPaths = [[NSMutableArray alloc] init]; 91 | NSString *appPath = NSBundle.mainBundle.bundlePath; 92 | uint32_t count = _dyld_image_count(); 93 | for (uint32_t i = 0; i < count; i++) { 94 | NSString *dylibPath = @(_dyld_get_image_name(i)); 95 | if ([dylibPath hasPrefix:appPath]) { 96 | [loadedDylibPaths addObject:dylibPath]; 97 | } 98 | } 99 | 100 | NSDictionary *dic = TZLoadLibsInDirectoryWithLoadedDylibPaths(appPath, loadedDylibPaths); 101 | NSLog(@"TZLoadAllLibs: File list\n%@", [dic.description stringByReplacingOccurrencesOfString:@" = \"\"" withString:@""]); 102 | }); 103 | } 104 | } 105 | } 106 | --------------------------------------------------------------------------------