Commit Graph

1573 Commits

Author SHA1 Message Date
Riley Testut
caf11c2936 [AltJIT] Changes AltSign-Dynamic to not be embedded
Fixes “Cycle in dependencies” compiler error when archiving AltServer.
2024-12-26 21:15:29 +05:30
Riley Testut
f1e4c5c545 [AltWidget] Fixes ActiveAppsWidget compiler error when deployment target < iOS 17 2024-12-26 21:15:29 +05:30
Riley Testut
77aed91703 Reloads widget timelines on app launch 2024-12-26 21:15:29 +05:30
Riley Testut
cc9bfe72a9 [AltServer] Fixes exporting AltServer as generic Xcode archive 2024-12-26 21:15:29 +05:30
Riley Testut
15845e03c9 [AltServer] Fixes “SDK does not contain libarclite” error when archiving 2024-12-26 21:15:29 +05:30
Riley Testut
52407832f5 [AltJIT] Fixes “AltSign-Dynamic not found” runtime error at launch 2024-12-26 21:15:29 +05:30
Riley Testut
ebf3a3172c [AltServer] Supports enabling JIT on devices running iOS 17
AltServer embeds the AltJIT CLI tool in its app bundle and runs it as an admin subprocess.
2024-12-26 21:15:29 +05:30
Riley Testut
2d0d6ae07e [AltJIT] Removes unnecessary ALTErrorKeys.h/.m
Was originally added because AltJIT couldn’t link with AltSign, which is not true anymore.
2024-12-26 21:15:29 +05:30
Riley Testut
e45a76f990 Fixes ErrorDetailsViewController not displaying text below fold 2024-12-26 21:15:29 +05:30
Riley Testut
21555f091f [AltJIT] Adds AltJIT CLI tool to enable JIT on devices running iOS 17+
Commands:

altjit enable [app/pid] --udid [udid]
* Enables JIT for given app/process

altjit mount --udid [udid]
* Mounts personalized developer disk
2024-12-26 21:15:29 +05:30
Riley Testut
19f2a3dd29 [AltStoreCore] Fixes “any ALTAppPermission cannot conform to 'Hashable’” Xcode 15 compiler error 2024-12-26 21:15:29 +05:30
Riley Testut
5efacd6267 [AltWidget] Replaces legacy PreviewProvider previews with #Preview macro 2024-12-26 21:15:29 +05:30
Riley Testut
7bf3ce8326 [AltWidget] Refactors previous widgets to use AppsTimelineProvider 2024-12-26 21:15:29 +05:30
Riley Testut
c78d359a07 [AltWidget] Adds interactive Active Apps widget to view + refresh all active apps (iOS 17+) 2024-12-26 21:15:29 +05:30
Riley Testut
6e88787999 [AltWidget] Refactors widgets into separate files 2024-12-26 21:15:29 +05:30
Riley Testut
08f669a8c3 [AltWidget] Supports refreshing apps directly from home screen 2024-12-26 21:15:29 +05:30
Riley Testut
53ffcf317d [AltWidget] Adopts containerBackground(for:) on iOS 17 2024-12-26 21:15:29 +05:30
Riley Testut
122ded45f1 [AltWidget] Fixes incorrect home screen widget margins on iOS 17 2024-12-26 21:15:29 +05:30
Riley Testut
392affe027 Converts legacy RefreshAllIntent into App Shortcut (iOS 17+) 2024-12-26 21:15:29 +05:30
Riley Testut
92d0f1a3c0 Fixes race condition causing duplicate background refresh notifications (or none) 2024-12-26 21:15:29 +05:30
Riley Testut
23efc6a163 Fixes not refreshing AltStore last when refreshing via Shortcut
Could potentially be an issue if AltStore needs to resign itself, e.g. with AltDaemon.
2024-12-26 21:15:29 +05:30
Riley Testut
a30f087ad8 Updates build version to 6 2024-12-26 21:15:29 +05:30
Riley Testut
9bd69690b6 [Permissions] Adds entries for most known privacy permissions 2024-12-26 21:15:29 +05:30
Riley Testut
d97f1315a6 [AltStoreCore] Updates AltStore12ToAltStore13 mapping model for latest model changes
* Non-optional AppPermission.usageDescription
* Non-optional AppPermission.appBundleID
* Added AppPermission.sourceID
2024-12-26 21:15:29 +05:30
Riley Testut
222617273c [AltStoreCore] Fixes incorrectly merging permissions for same app from different sources 2024-12-26 21:15:29 +05:30
Riley Testut
c4e5bcdcdd Fixes crash when adding source with the same name as another source 2024-12-26 21:15:29 +05:30
Riley Testut
628d96442f [AltStoreCore] Makes AppPermission.usageDescription non-optional for backwards compatibility
Necessary to support switching between AltStore beta and public version.

Wraps private non-optional _usageDescription value in public accessor with optional return type to still treat it as “optional” value.
2024-12-26 21:15:29 +05:30
Riley Testut
b49f6fd660 Updates build version to 4 2024-12-26 21:15:29 +05:30
Riley Testut
5179ac6f12 Fixes “non-sendable type 'Notification?' cannot cross actor boundary” warning 2024-12-26 21:15:29 +05:30
Riley Testut
17aee9b290 Revises appPermissions format in source JSON
Before, appPermissions was one array containing all permissions of different types.

Now, we split entitlement and privacy permissions into separate “entitlements” and “privacy” child arrays.
2024-12-26 21:15:29 +05:30
Riley Testut
03e745525f Changes ALTAppPermission.isKnown to check localizedName == nil, not localizedDescription
Privacy permissions always have nil localizedDescriptions, even if they’re known.
2024-12-26 21:15:29 +05:30
Riley Testut
30dc5a3bed Updates app version to 2.0b2 2024-12-26 21:15:29 +05:30
Riley Testut
d6ccb5c301 Updates Cocoapods to 1.12.1 2024-12-26 21:15:29 +05:30
Riley Testut
8347a70d97 [Permissions] Fixes incorrect entitlement keys and revises names + descriptions 2024-12-26 21:15:29 +05:30
Riley Testut
cf9066fef1 Fixes “Check for Updates” not updating any sources if one source fails 2024-12-26 21:15:29 +05:30
Riley Testut
63c9135f71 Revises store page permissions UI (again)
* Switches back “Permissions” and “Privacy” section titles
* Shrinks privacy permissions card title font
* Combines privacy + entitlements back into single “Permissions” section
* Removes “Entitlements” section name
2024-12-26 21:15:29 +05:30
Riley Testut
7cbb2da71d Adds “Disable Response Caching” debug setting
When enabled, AltStore will ignore cached responses for certain requests and will always make a new request to the server. This is useful for development when repeatedly testing changes to remote files.

Limited to UpdateKnownSourcesOperation for now, but will eventually affect fetching sources as well.
2024-12-26 21:15:29 +05:30
Riley Testut
ebb86110ed [AltStoreCore] Migrates Core Data model from v12 to v13 2024-12-26 21:15:29 +05:30
Riley Testut
cf4d308174 [AltStoreCore] Adds Permissions.plist with definitions for most known permissions
Simpler to update over time as a separate plist rather than in source code.
2024-12-26 21:15:29 +05:30
Riley Testut
72f4bd3657 Refactors app version comparison logic to always include buildVersion
Before, whether or not the source included the buildVersion affected the comparison. If present, the buildVersion was used in comparison, if not, only the version itself was used for comparsion.

This meant it was impossible to update from a version with a buildVersion to the same version without one (e.g. going from betas to final releases). Now we _always_ consider the buildVersion in the comparsion, so an earlier entry in versions array without buildVersion can be considered “newer” even if versions match.
2024-12-26 21:15:29 +05:30
Riley Testut
f514c59bdd Revises store page permissions UI
* Switches “Permissions” and “Privacy” titles
* Makes “Entitlements” and “Other Entitlements” top-level sections
* Matches parent table view layout margins
2024-12-26 21:15:29 +05:30
Riley Testut
c59266c2cb Disables permission verification for DEBUG builds 2024-12-26 21:15:29 +05:30
Riley Testut
008e740606 Fixes incorrectly handling misc. CancellationErrors 2024-12-26 21:15:29 +05:30
Riley Testut
6770010a80 Fixes “Core Data error” when error is thrown while parsing Source JSON
‘NSCodingPath’ is an array of non-ObjC values, but because it’s an array the array itself conforms to NSSecureCoding via NSArray bridging.

We now make sure every element in an array or dictionary also conforms to NSSecureCoding to keep it in an error’s userInfo for serialization.
2024-12-26 21:15:29 +05:30
Riley Testut
8929b857cf Removes support for “background mode” permissions 2024-12-26 21:15:29 +05:30
Riley Testut
ea428b5f40 Temporarily disables verifying added permissions
We’ll re-enable once we finish the “Review Permissions” screen.
2024-12-26 21:15:29 +05:30
Riley Testut
9142d42d4e Includes more detailed info in VerificationError.addedPermission error messages
* New version
* Previous version
* Added permissions
2024-12-26 21:15:29 +05:30
Riley Testut
00d6fdb1ea Fixes erroneously showing “Unsupported Updates Available” message 2024-12-26 21:15:29 +05:30
Riley Testut
3203bcd6cb Revises Entitlements UI on app detail page 2024-12-26 21:15:29 +05:30
Riley Testut
53b30dcdb0 Fixes strong reference cycles in Source view controllers
* SourcesViewController
* SourcesDetailContentViewController
2024-12-26 21:15:29 +05:30