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
Riley Testut
7e01972cd4
Skips logging OperationError.cancelled errors
2024-12-26 21:15:29 +05:30