Riley Testut
c8a3ff0a9c
Fixes triggering false positives with some malware detectors
...
Renames UserDefaults.isMacDirtyCowSupported to .isCowExploitSupported
2024-12-26 21:15:29 +05:30
Riley Testut
b59c59de4a
Adds “Clear Cache” description to Techy Things section footer
2024-12-26 21:15:29 +05:30
Riley Testut
a5b1a320de
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
7042e9acbe
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
a2c05c8099
Fixes incorrect “View Error Log” cell appearance
2024-12-26 21:15:29 +05:30
Riley Testut
68d49bd1ca
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
05ef72ddfd
Adds “Clear Cache” button to remove temporary files and uninstalled app backups
2024-12-26 21:15:29 +05:30
Riley Testut
07d5a7551f
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
d76b258073
Fixes non-readable error toast view when an authentication error occurs
2024-12-26 21:15:29 +05:30
Riley Testut
31d5d024dd
Caches MergeErrors when refreshing sources to view later in SourcesViewController
2024-12-26 21:15:29 +05:30
Riley Testut
47fb8ff3eb
Fixes incorrect StoreApp.versions order post-merge
2024-12-26 21:15:29 +05:30
Riley Testut
3e6f48b1bb
[Shared] Fixes pattern matching non-ALTErrorEnum error codes
2024-12-26 21:15:29 +05:30
Riley Testut
19a405fe56
Fixes adding failures to NSErrors with nil localizedFailureReasons
2024-12-26 21:15:29 +05:30
Riley Testut
3e6c08f458
[AltTests] Enables Code Coverage
2024-12-26 21:15:29 +05:30
Riley Testut
5c942dc150
[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
ce0e5d6c50
Adds AltTests test target
2024-12-26 21:15:29 +05:30
Riley Testut
6396794963
Moves “View Error Log” setting to new Techy Things section
2024-12-26 21:15:29 +05:30
Riley Testut
f4856bd435
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
4e2d62cf95
[Shared] Ignores ALTWrappedError NSLocalizedDescription user info value if it == failure + failure reason
2024-12-26 21:15:29 +05:30
Riley Testut
1741aff153
[Shared] Encodes all CodableError codable user info values, not just recognized types
2024-12-26 21:15:29 +05:30
Riley Testut
9b50d2269c
[Shared] Fixes error encoding CodableError Int/UInt user info values
2024-12-26 21:15:29 +05:30
Riley Testut
f03507e348
[Shared] Uses underlying error messages (if available) for ALTServerError.invalidRequest/.invalidResponse
2024-12-26 21:15:29 +05:30
Riley Testut
c34bcce5ea
Updates VerificationError.errorDescription to match ALTLocalizedError default implementation
2024-12-26 21:15:29 +05:30
Riley Testut
5bb677f6d9
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
c9d64986bd
Revises “check for updates” error title
2024-12-26 21:15:29 +05:30
Riley Testut
46aaf8d0ce
Verifies Sources don’t contain duplicate app versions
2024-12-26 21:15:29 +05:30
Riley Testut
333e68a859
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
3d586f2c64
Moves @Managed to AltStoreCore
2024-12-26 21:15:29 +05:30
Riley Testut
bb560ed8b6
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
62518be628
[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
e7b70328ea
Fixes crash due to accessing AppManager.installationProgress/refreshProgress concurrently
2024-12-26 21:15:29 +05:30
Riley Testut
a6d9e32dfe
Fixes delay updating UI after cancelling installing app
2024-12-26 21:15:29 +05:30
Riley Testut
2e27447e36
[Shared] Adds OperatingSystemVersion+Comparable to AltServer target
2024-12-26 21:15:29 +05:30
Riley Testut
0759bccfdc
Includes the invalid name in error message for registering App ID with invalid characters
2024-12-26 21:15:29 +05:30
Riley Testut
44bec0fada
Adds comment to ErrorLogViewController
2024-12-26 21:15:29 +05:30
Riley Testut
f45deb5ba4
Fixes missing app icon for update errors in Error Log
2024-12-26 21:15:29 +05:30
Riley Testut
c669260115
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
7c9d501c02
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
b63adb38d8
Fixes potentially incorrect versions order when merging StoreApp
2024-12-26 21:15:29 +05:30
Riley Testut
e77142a1dd
Fixes incorrect update notifications for apps with unsupported versions
2024-12-26 21:15:29 +05:30
Riley Testut
c38ad14999
Adds pull-to-refresh to check for updates
2024-12-26 21:15:29 +05:30
Riley Testut
faad089801
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
fdbb40a0df
Hides app updates that don’t support device’s OS version
2024-12-26 21:15:29 +05:30
Riley Testut
02f1c2be61
Improves error message when file does not exist at AppVersion.downloadURL
2024-12-26 21:15:29 +05:30
Riley Testut
c89dc256ff
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
03b5ee840a
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
0aa3b05167
Conforms OperatingSystemVersion to Comparable
2024-12-26 21:15:29 +05:30
Riley Testut
3e9463c434
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
3c4c563ef8
[AltServer] Adds “Search FAQ” button to ErrorDetailsViewController
2024-12-26 21:15:29 +05:30
Riley Testut
3c1a01a78b
Skips logging OperationError.cancelled errors
2024-12-26 21:15:29 +05:30