├── .github └── workflows │ └── build.yml ├── .gitignore ├── Makefile ├── NoSettingsBadge.plist ├── README.md ├── Tweak.xm ├── control ├── depiction.json ├── icon.png ├── icon.xcf ├── icon@2x.png ├── icon@3x.png ├── screenshot1.xcf └── screenshot2.xcf /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build 2 | 3 | on: 4 | push: 5 | branches: ["*"] 6 | pull_request: 7 | branches: ["*"] 8 | 9 | jobs: 10 | build-rootless: 11 | runs-on: macos-13 12 | steps: 13 | - uses: maxim-lobanov/setup-xcode@v1 14 | with: 15 | xcode-version: latest-stable 16 | 17 | - uses: actions/checkout@main 18 | 19 | - name: Checkout theos/theos 20 | uses: actions/checkout@main 21 | with: 22 | repository: theos/theos 23 | ref: master 24 | submodules: recursive 25 | path: theos 26 | 27 | - name: Checkout SDKs 28 | uses: actions/checkout@main 29 | with: 30 | repository: xybp888/iOS-SDKs 31 | ref: master 32 | sparse-checkout: iPhoneOS15.5.sdk 33 | path: theos/sdks 34 | 35 | - name: Install dependencies 36 | run: HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 brew install make xz ldid 37 | 38 | - name: Build package (rootless) 39 | run: THEOS=theos gmake clean package FINALPACKAGE=1 THEOS_PACKAGE_SCHEME=rootless 40 | 41 | - name: Upload a Build Artifact (rootless) 42 | uses: actions/upload-artifact@v3 43 | with: 44 | name: packages iphoneos-arm64 (rootless) 45 | path: packages/*_iphoneos-arm64.deb 46 | 47 | build-rootful: 48 | runs-on: macos-13 49 | steps: 50 | - uses: maxim-lobanov/setup-xcode@v1 51 | with: 52 | xcode-version: latest-stable 53 | 54 | - uses: actions/checkout@main 55 | 56 | - name: Checkout theos/theos 57 | uses: actions/checkout@main 58 | with: 59 | repository: theos/theos 60 | ref: master 61 | submodules: recursive 62 | path: theos 63 | 64 | - name: Checkout SDKs 65 | uses: actions/checkout@main 66 | with: 67 | repository: xybp888/iOS-SDKs 68 | ref: master 69 | sparse-checkout: iPhoneOS14.2.sdk 70 | path: theos/sdks 71 | 72 | - name: Install dependencies 73 | run: brew install make xz ldid 74 | 75 | - name: Build package (rootful) 76 | run: THEOS=theos gmake clean package FINALPACKAGE=1 77 | 78 | - name: Upload a Build Artifact (rootful) 79 | uses: actions/upload-artifact@v3 80 | with: 81 | name: packages iphoneos-arm (rootful) 82 | path: packages/*_iphoneos-arm.deb 83 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .theos/ 2 | packages/ -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | THEOS_DEVICE_IP = 10.0.0.130 2 | GO_EASY_ON_ME = 1 3 | #THEOS_PACKAGE_SCHEME=rootless 4 | 5 | INSTALL_TARGET_PROCESSES = SpringBoard 6 | 7 | PACKAGE_VERSION = $(THEOS_PACKAGE_BASE_VERSION) 8 | #PACKAGE_VERSION = $(THEOS_PACKAGE_BASE_VERSION)-$(VERSION.INC_BUILD_NUMBER)$(VERSION.EXTRAVERSION) 9 | 10 | ifeq ($(THEOS_PACKAGE_SCHEME),rootless) 11 | ARCHS = arm64 arm64e 12 | TARGET = iphone:clang:15.5:15.0 13 | else 14 | ARCHS = armv7 armv7s arm64 arm64e 15 | TARGET = iphone:clang:14.2:8.0 16 | endif 17 | 18 | SDKVERSION = 16.5 19 | 20 | TWEAK_NAME = NoSettingsBadge 21 | 22 | $(TWEAK_NAME)_FILES = Tweak.xm 23 | $(TWEAK_NAME)_CFLAGS = -fobjc-arc 24 | $(TWEAK_NAME)_EXTRA_FRAMEWORKS += Cephei 25 | 26 | include $(THEOS)/makefiles/common.mk 27 | include $(THEOS_MAKE_PATH)/tweak.mk 28 | -------------------------------------------------------------------------------- /NoSettingsBadge.plist: -------------------------------------------------------------------------------- 1 | { Filter = { Bundles = ( "com.apple.springboard", "com.apple.Preferences" ); }; } 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NoSettingsBadge 2 | iOS jailbreak tweak that will hide the annoying settings notification badge from software updates or any other source. See more here https://cosmiccode.cc/repo/depictions/html/NoSettingsBadge 3 | -------------------------------------------------------------------------------- /Tweak.xm: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | #define TWEAK_NAME @"NoSettingsBadge" 5 | 6 | @interface Debug : NSObject 7 | +(void)Log:(NSString *)msg; 8 | @end 9 | 10 | @implementation Debug 11 | // Show log with tweak name as prefix for easy grep 12 | +(void)Log:(NSString *)msg { 13 | NSLog(@"%@: %@", TWEAK_NAME, msg); 14 | } 15 | @end 16 | 17 | 18 | // =========================== Classes / Functions =========================== 19 | 20 | @interface SBApplication : NSObject 21 | @property (nonatomic,readonly) NSString *bundleIdentifier; 22 | @end 23 | 24 | @interface PSSpecifier : NSObject 25 | @property (nonatomic,retain) NSString *identifier; 26 | @end 27 | 28 | @interface PSBadgedTableCell 29 | @property (nonatomic,retain) PSSpecifier *specifier; 30 | @end 31 | 32 | 33 | // =========================== Hooks =========================== 34 | 35 | 36 | %hook SBApplication 37 | -(id)badgeValue { 38 | if ([[self bundleIdentifier] isEqualToString:@"com.apple.Preferences"]) 39 | return nil; 40 | 41 | return %orig; 42 | } 43 | %end 44 | 45 | %hook PSBadgedTableCell 46 | -(void)badgeWithInteger:(NSInteger)badgeValue { 47 | NSString *identifier = [self specifier].identifier; 48 | 49 | if ([identifier isEqualToString:@"General"] || [identifier isEqualToString:@"SOFTWARE_UPDATE_LINK"]) 50 | badgeValue = 0; 51 | 52 | %orig(badgeValue); 53 | } 54 | %end 55 | 56 | %ctor { 57 | [Debug Log:[NSString stringWithFormat:@"============== %@ started ==============", TWEAK_NAME]]; 58 | } 59 | -------------------------------------------------------------------------------- /control: -------------------------------------------------------------------------------- 1 | Package: com.wrp1002.nosettingsbadge 2 | Name: NoSettingsBadge 3 | Version: 1.1.0 4 | Architecture: iphoneos-arm 5 | Description: Remove settings notification badge! 6 | Maintainer: Wes 7 | Author: Wes 8 | Section: Tweaks 9 | Depends: mobilesubstrate (>= 0.9.5000) 10 | -------------------------------------------------------------------------------- /depiction.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "NoSettingsBadge", 3 | "description": "This will hide the annoying settings notification badge from software updates or any other source. It will also hide the software update badge inside the settings app", 4 | "compatibility": "Made for iOS 14", 5 | "screenshots": ["screenshot1.png", "screenshot2.png"], 6 | "changelog": [ 7 | { 8 | "version": "1.0.0", 9 | "changes": ["Initial Release"] 10 | }, 11 | { 12 | "version": "1.0.1", 13 | "changes": ["Fix badges disappearing breifly"] 14 | }, 15 | { 16 | "version": "1.0.2", 17 | "changes": ["Should work if Settings is in a folder now"] 18 | }, 19 | { 20 | "version": "1.0.3", 21 | "changes": ["Removed badge inside settings app"] 22 | } 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrp1002/nosettingsbadge/dff15556d71a74c1b19b04384e2f4bbb9ece4b1d/icon.png -------------------------------------------------------------------------------- /icon.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrp1002/nosettingsbadge/dff15556d71a74c1b19b04384e2f4bbb9ece4b1d/icon.xcf -------------------------------------------------------------------------------- /icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrp1002/nosettingsbadge/dff15556d71a74c1b19b04384e2f4bbb9ece4b1d/icon@2x.png -------------------------------------------------------------------------------- /icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrp1002/nosettingsbadge/dff15556d71a74c1b19b04384e2f4bbb9ece4b1d/icon@3x.png -------------------------------------------------------------------------------- /screenshot1.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrp1002/nosettingsbadge/dff15556d71a74c1b19b04384e2f4bbb9ece4b1d/screenshot1.xcf -------------------------------------------------------------------------------- /screenshot2.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wrp1002/nosettingsbadge/dff15556d71a74c1b19b04384e2f4bbb9ece4b1d/screenshot2.xcf --------------------------------------------------------------------------------