Commit Graph

1452 Commits

Author SHA1 Message Date
Riley Testut
b7f5acd332 [AltTests] Replaces iOS 16+ URL(filePath:) with URL(fileURLWithPath:) 2024-12-26 21:15:29 +05:30
Riley Testut
65598e2cd5 Fixes triggering false positives with some malware detectors
Renames UserDefaults.isMacDirtyCowSupported to .isCowExploitSupported
2024-12-26 21:15:29 +05:30
Riley Testut
806421f19f Adds “Clear Cache” description to Techy Things section footer 2024-12-26 21:15:29 +05:30
Riley Testut
9df4026ed4 Hides MacDirtyCow settings on iOS 15.7.2
MacDirtyCow supports iOS 14.0 - 15.7.1 and 16.0 - 16.1.2, but not 15.7.2
2024-12-26 21:15:29 +05:30
Riley Testut
17abda66ba Fixes SourcesViewController crash on iOS 12
Apparently changing NSLayoutConstraint priorities from required to optional (and vice versa) isn’t supported, even though it works on iOS 13+. Who knew!
2024-12-26 21:15:29 +05:30
Riley Testut
f16e9c75b4 Fixes incorrect “View Error Log” cell appearance 2024-12-26 21:15:29 +05:30
Riley Testut
f9c22ff617 Force-enables “Enforce 3-App Limit” if iOS version does not support MacDirtyCow exploit
Prevents “Enforce 3-App Limit” remaining enabled after updating iOS version without a way to disable it.
2024-12-26 21:15:29 +05:30
Riley Testut
2cfc307359 Adds “Clear Cache” button to remove temporary files and uninstalled app backups 2024-12-26 21:15:29 +05:30
Riley Testut
66a17bc27f Supports sideloading more than 3 apps via MacDirtyCow exploit
The MacDirtyCow exploit allows users to remove the 3 active apps limit on iOS 16.1.2 and earlier. To support this, we’ve added a new (hidden) “Enforce 3-App Limit” setting that can be disabled to allow sideloading more than 3 apps.
2024-12-26 21:15:29 +05:30
Riley Testut
5da3974795 Fixes non-readable error toast view when an authentication error occurs 2024-12-26 21:15:29 +05:30
Riley Testut
a8f0d9da9b Caches MergeErrors when refreshing sources to view later in SourcesViewController 2024-12-26 21:15:29 +05:30
Riley Testut
4a3dbc20d6 Fixes incorrect StoreApp.versions order post-merge 2024-12-26 21:15:29 +05:30
Riley Testut
624c4086f1 [Shared] Fixes pattern matching non-ALTErrorEnum error codes 2024-12-26 21:15:29 +05:30
Riley Testut
d54b7aa3bf Fixes adding failures to NSErrors with nil localizedFailureReasons 2024-12-26 21:15:29 +05:30
Riley Testut
1646c7cb83 [AltTests] Enables Code Coverage 2024-12-26 21:15:29 +05:30
Riley Testut
ec0c0df78c [AltTests] Adds error handling tests
Passes all tests

[Review] Refactors tests to be more readable

Removes unnecessary code
2024-12-26 21:15:29 +05:30
Riley Testut
1d1be0a8f9 Adds AltTests test target 2024-12-26 21:15:29 +05:30
Riley Testut
7afd11fdc6 Moves “View Error Log” setting to new Techy Things section 2024-12-26 21:15:29 +05:30
Riley Testut
8fcc5622e1 Fixes “missing provisioning profile” error when refreshing DEBUG builds
Removes embedded XCTest (+ dSYM) bundles before resigning for DEBUG builds.
2024-12-26 21:15:29 +05:30
Riley Testut
8759ed091f [Shared] Ignores ALTWrappedError NSLocalizedDescription user info value if it == failure + failure reason 2024-12-26 21:15:29 +05:30
Riley Testut
d2d90ab9da [Shared] Encodes all CodableError codable user info values, not just recognized types 2024-12-26 21:15:29 +05:30
Riley Testut
2e987647dc [Shared] Fixes error encoding CodableError Int/UInt user info values 2024-12-26 21:15:29 +05:30
Riley Testut
e96a5114e5 [Shared] Uses underlying error messages (if available) for ALTServerError.invalidRequest/.invalidResponse 2024-12-26 21:15:29 +05:30
Riley Testut
6c7223b991 Updates VerificationError.errorDescription to match ALTLocalizedError default implementation 2024-12-26 21:15:29 +05:30
Riley Testut
b5bcf229ae Fixes refreshing tweaked apps with removed app extensions
In addition to removing the app extensions themselves, we also need to remove references to them from SC_Info/Manifest.plist in the app bundle (if the file exists). Otherwise, subsequent installations (resigning, (de)-activating, etc.) will fail due to “missing” app extensions.
2024-12-26 21:15:29 +05:30
Riley Testut
b60536dded Revises “check for updates” error title 2024-12-26 21:15:29 +05:30
Riley Testut
881091595c Verifies Sources don’t contain duplicate app versions 2024-12-26 21:15:29 +05:30
Riley Testut
8f1a91df1b Replaces StoreApp.setVersions() preconditionFailure with runtime error
It’s more common than expected for apps to not have any app versions, so better to fail gracefully than crash.
2024-12-26 21:15:29 +05:30
Riley Testut
2a7926539f Moves @Managed to AltStoreCore 2024-12-26 21:15:29 +05:30
Riley Testut
2017584da4 Verifies Sources don’t contain duplicate bundle IDs
AltStore assumes all apps have unique bundle IDs per source. Weird bugs can occur when this is not the case (such as merging multiple store listings into one), so we now verify upfront whether source contains duplicate bundle IDs before saving.
2024-12-26 21:15:29 +05:30
Riley Testut
db57de28d6 [AltServer] Downloads latest supported AltStore version for device OS version
Asks user to install latest compatible version instead if latest AltStore version does not support their device’s OS version.
2024-12-26 21:15:29 +05:30
Riley Testut
1fcdb18477 Fixes crash due to accessing AppManager.installationProgress/refreshProgress concurrently 2024-12-26 21:15:29 +05:30
Riley Testut
35561336c6 Fixes delay updating UI after cancelling installing app 2024-12-26 21:15:29 +05:30
Riley Testut
2f9f3e6c72 [Shared] Adds OperatingSystemVersion+Comparable to AltServer target 2024-12-26 21:15:29 +05:30
Riley Testut
3c02938bfd Includes the invalid name in error message for registering App ID with invalid characters 2024-12-26 21:15:29 +05:30
Riley Testut
23386c88ea Adds comment to ErrorLogViewController 2024-12-26 21:15:29 +05:30
Riley Testut
0965299e6f Fixes missing app icon for update errors in Error Log 2024-12-26 21:15:29 +05:30
Riley Testut
65485ecdf5 Supports updating apps from AppViewController
Unlike MyAppsViewController, AppViewController will attempt to update to the latest available version, rather than the latest supported version. If the latest version is not supported, it will fall back to asking user to install last supported version.
2024-12-26 21:15:29 +05:30
Riley Testut
3d70271306 Fixes updating apps to latest version instead of latest supported version from My Apps tab 2024-12-26 21:15:29 +05:30
Riley Testut
83d39666d2 Fixes potentially incorrect versions order when merging StoreApp 2024-12-26 21:15:29 +05:30
Riley Testut
7409c0ef4e Fixes incorrect update notifications for apps with unsupported versions 2024-12-26 21:15:29 +05:30
Riley Testut
b8030ed0a9 Adds pull-to-refresh to check for updates 2024-12-26 21:15:29 +05:30
Riley Testut
a537e70459 Allows viewing unsupported updates from My Apps tab
When unsupported updates are available, the “No Updates Available” text becomes “Unsupported Updates Available”, and a button is revealed that will list all unsupported updates in an alert when tapped.
2024-12-26 21:15:29 +05:30
Riley Testut
9f38601102 Hides app updates that don’t support device’s OS version 2024-12-26 21:15:29 +05:30
Riley Testut
f82743af98 Improves error message when file does not exist at AppVersion.downloadURL 2024-12-26 21:15:29 +05:30
Riley Testut
76f8fc6d9a Verifies min/max OS version before downloading app + asks user to download older app version if necessary 2024-12-26 21:15:29 +05:30
Riley Testut
9d5248e2e8 Supports non-NSManagedObjects for @Managed properties
This allows us to use @Managed with properties that may or may not be NSManagedObjects at runtime (e.g. protocols). If they are, Managed will keep strong reference to context like before.
2024-12-26 21:15:29 +05:30
Riley Testut
9217044b1d Conforms OperatingSystemVersion to Comparable 2024-12-26 21:15:29 +05:30
Riley Testut
5d87650553 Replaces StoreApp.latestVersion with latestSupportedVersion + latestAvailableVersion
We now store the latest supported version as a relationship on StoreApp, rather than the latest available version. This allows us to reference the latest supported version in predicates and sort descriptors.

However, we kept the underlying Core Data property name the same to avoid extra migration.
2024-12-26 21:15:29 +05:30
Riley Testut
f8d3d4971f [AltServer] Adds “Search FAQ” button to ErrorDetailsViewController 2024-12-26 21:15:29 +05:30