Changelog
- version 3~Beta98
- Made the patch description text selectable. Requested by /u/Sarab-admaah on Reddit /r/flextweak
- version 3~Beta97
- Fixed issue where some apps wouldn't process on checkra1n. Application was missing a task entitlement.
- version 3~Beta96
- Added support for processing applications with code sign directives.
- Now shows an alert with reason for processing failure.
- Added check for launch prohibited flag.
- Fixed alert view being removed on background thread.
- version 3~Beta95
- Fix submitted patches profile option not showing up for accounts that used connect with Twitter. Thanks to @454503002 for reporting this bug.
- version 3~Beta94
- You can now view your submitted patches and their moderation status! Go to Dash -> User -> Submitted Patches
- Add better debug information to error alerts that occur due to a bad server response.
- version 3~Beta93
- New type encoding parser fixes a crash when processing some binaries. Much better parsing, thanks to LLVM.
- NSMethodSignature can throw exceptions with some valid type encodings. These exceptions are now caught instead of crashing the app.
- Fixed crash when trying to override an argument that is out of bounds.
- No longer tries decrypting with pasteboard as inter-process communication as a backup.
- Fix untagging class pointer in processing.
- Fixed a crash when finding a non-pointer metaclass
- version 3~Beta92
- Added a processing HUD during processing.
- Fix processing classes with an unread flag in the read-only pointer causing a crash.
- Fix displaying frameworks that don't have a binary associated with them.
- Now displays many previously missing frameworks.
- Fix decryption for applications without page aligned encryption offsets.
- Huge thanks go out to NickSB2013 on the /r/flextweak subreddit, who initially reported issues with Framework processing. This update is thanks to his thorough examination of Flex's processing and helpful bug reporting.
- Flex now searches for system frameworks recursively, and validates they have an on-disk file or are present in the DYLD cache.
- version 3~Beta91
- Now processes frameworks without needing to load them into the process.
- Added DYLD shared cache parsing.
- Processing SpringBoard frameworks no longer cause a crash.
- Removed debug red color in layer not normally visible, causing issues with tweaks that use transparency.
- Disabled dark mode because it's not implemented yet.
- version 3~Beta90
- Fixed crash when tapping on System Libraries section header to show all system libraries.
- Flex deployment system partially broken due to older server unable to connect to database. Working on fix, and updating missing changelogs.
- Fix crash when tapping on System Libraries section header to show all system libraries.
- version 3~Beta89
- Remove Haneke dependency
- Remove Facebook pop dependency
- Remove Fabric dependency
- version 3~Beta88
- Update Discord invite link
- version 3~Beta87
- Prevent crash related to SpringBoard messaging server. It's used only as a fallback currently, so the extra check to see if the server started up correctly has been removed. Reported by @PONCE54958
- version 3~Beta86
- Added safety checks to prevent UI dividers related crash reported by @ihaxiOS on Twitter.
- version 3~Beta85
- Prevented crash caused by vm deallocation of memory region used for decrypting Mach-O images. Race condition averted by running unmapping and deallocations on main thread, and not updating log while freeing memory.
- version 3~Beta84
- Only allow invalid codesigned memory once. csops fails to get correct status on some jailbreaks, so now the process of allowing it trips an internal flag.
- Added embedded libraries section when selecting Mach-O image to process. These are usually more important for patches than system libraries.
- Detect codesign directives before decrypting to prevent getting stuck on memory reads.
- version 3~Beta83
- No longer crash when target app file fails to load. This is expected as we list even apps not fully downloaded.
- Now allocates enough contiguous memory for a Mach-O image before mapping it to segments. Prevents crash due to memory collision.
- Fix extraction directory permissions on install and on launch. Fixes issue some people have been having with processing not working. Thanks to @iCrazeiOS and @Rov3rRepo on Twitter.
- version 3~Beta82
- Show processed app count in process apps debug screen.
- Process apps debug screen now cancels when navigated away from.
- version 3~Beta81
- Fix reading addresses from correct sections when processing.
- No longer read symbols strings table when processing, as it's unecessary. This speeds up processing.
- Add autorelease pool to stop memory from getting too large when processing all apps in Debug tab.
- version 3~Beta80
- Fail processing apps debug on unmap failure, instead of continuing.
- version 3~Beta79
- Allow invalid codesigned pages only once.
- Skip __RESTRICT segments when processing.
- Show more descriptive error messages when processing fails.
- version 3~Beta78
- Disables codesign checks before decrypting apps.
- Added Debug tab in Dash screen. Try it out!
- version 3~Beta77
- Brand new processing engine for applications.
- No longer launch apps to process them.
- SpringBoard no longer needs to be reloaded to be processed.
- version 3~Beta76
- Fix remaining Notchless issues. Thanks to @AdamVinkovic on Twitter for recording a video of the issues.
- version 3~Beta75
- Prevent Snapchat from detecting Flex and causing bans by renaming the class it uses to detect its presence.
- version 3~Beta74
- Use key window instead of top window with normal window level for showing input views. Attempt to fix Notchless conflict reported by Stefano.
- Now libswift is only required on iOS < 12.2, thanks to @JP_Delon for the tip.
- version 3~Beta73
- Use libswift instead of bundling Swift binaries.
- version 3~Beta72
- Let's try this iOS 11 fix one more time.
- Fixes ldid2 signing command. Last build wasn't being signed.
- version 3~Beta71
- Another go at fixing iOS 11 issues. Feeling really good about this one.
- Use ldid2 for codesigning frameworks because Xcode's codesign causes a crash on A12.
- Fix automated build process not erroring out when upload to repo fails.
- version 3~Beta70
- Another build to try and fix iOS 11 crashes.
- Frameworks are now signed at end of build process, skipping Xcode's code sign on copy.
- i386 is removed from frameworks. Removing x86_64 causes a crash on A12 Chimera currently, but I'm looking into it.
- Running bitcode_strip on Swift libraries causes a respring on A12 Chimera, so package is a bit more bloated than it needs to be currently. Looking at moving to libswift.
- version 3~Beta69
- Codesign frameworks again, hopefully fixes iOS 11 issues.
- No longer configure Twitter on startup, as that causes crashes on A12 for an unknown reason.
- Upgraded to Swift 5.0
- Fix default uicache being run when path argument uicache succeeded.
- Close Flex on install if it's open.
- Fix APT prerm script for removing Flex.app remnants.
- Nice.
- version 3~Beta68
- No longer attempts Twitter connect when attempting to follow Flex 3 developer's Twitter, just launches url instead.
- version 3~Beta67
- Fixes SpringBoard crash on A12 due to PAC.
- Added PAC stripping for arm64e before calling back to original function.
- Improve uicache logic.
- version 3~Beta66
- Fix app crash on launch on A12.
- iOS 12.4 support
- Disable Swift standard library thinning because it causes crashing on Chimera.
- Remove libswift library search path, use embedded Swift libraries.
- No longer use NSLog for logging, so tweak output doesn't clutter outputs.
- Use uicache with --path
- version 3~Beta65
- Updated deployment server's Xcode version to 10.1 so that the arm64e slice is actually included in release builds.
- Thanks to @g742264285 for letting me know A12 wasn't fully working on latest build.
- version 3~Beta64
- Thanks to Kimo1000 on Reddit for posting a tutorial on how to fix Flex for H3lix. Thanks to Goreshit on on Reddit for linking me to the tutorial.
- Added H3lix compatibility by detecting iOS 10.3 or greater and moving Flex to Applications folder in that case.
- version 3~Beta63
- Added arm64e slice for A12 compatibility.
- version 3~Beta62
- Fix patch listings in Recent, Trending, Popular being sorted alphabetically when they should be sorted by other means. Thanks to InsaneousOne on Reddit for reporting this issue.
- version 3~Beta61
- Added sorting application patches by New, Downloads, and Title
- version 3~Beta60
- Updates tab is now loaded from a new server written in Swift.
- version 3~Beta59
- File attributes are now checked and corrected verbosely on install.
- Empty patch file is created on install.
- version 3~Beta58
- Don't print out log message when Flex is extracting blacklisted processes.
- Releases are now being built by a continuous deployment server.
- version 3~Beta57
- Now uses environment variable to inject applications with processing library, to ensure they get injected correctly.
- version 3~Beta56
- Moved third party frameworks startup call to background thread to improve app launch time.
- Fixed crash on new comment screen from undocumented value for keyboard animation curve.
- New comment screen now shows more correctly on iPhone X devices.
- version 3~Beta55
- Fixed crashes present in beta 53 and beta 54. A wrong flag was being checked and assembly code critical to Flex's hooking system was not being generated.
- version 3~Beta54
- Reports of safe mode on iOS 12 with Beta 53, so I've disabled the alert box I added. Let me know if that works.
- version 3~Beta53
- Processing is now done a thread with a high Quality of Service attribute, which speeds up processing quite a bit.
- Fixed dlopen causing hangs in certain cases. Now uses RTLD_NOLOAD and doesn't try to load already loaded binaries.
- Now passes processing flags through environment variables instead of pasteboard. Slight speed up.
- Tries launching app in foreground when processing fails.
- Refactored laying out of subviews in attempt to mitigate popular crash.
- Now shows alert in app that is being processed when it's launched in the foreground.
- Now terminates target app after processing.
- Fixed processing of 8 Ball Pool. Thanks to @ahmadlebanon47 for tweeting me about this being broken.
- version 3~Beta52
- No longer checks pasteboard for processing flag. This could have been causing apps to open slower or crashes in some cases.
- version 3~Beta51
- This beta is compatible with the Unc0ver iOS 12 jailbreak
- Fixes copied content being overwritten when an app is processed.
- Fixed Twitter 403 forbidden error on signing in.
- RocketBootstrap is no longer required, only recommended.
- Issue fixed where apps being targeted for processing were killed by system watchdog. These apps are now launched into the foreground and then Flex is re-activated when processing is finished.
- Improved checking of divider UI array that has been causing crashes.
- Fixed bug where apps wouldn't process because they needed to be terminated before processing library could be injected into them.
- Processing now works for Instagram, Facebook, Twitter.
- version 3~Beta50
- Processing now uses pasteboard to transfer results.
- Fixed edit button disappearing when tapped on patches screen.
- version 3~Beta49
- Bug fix release. Improved processing logic.
- version 3~Beta48
- Fixed certain apps crashing after processing failed.
- This is the same release as Flex Early Access 4
- version 3~Beta47
- Flex is now compatible with the iOS 11 Electra jailbreak
- Fixed processing
- Now saves extraction and signal files in cache directory of target apps
- Now launches apps with FrontBoardServices, uses suspended mode
- Fixed bug that would always alert that processing failed
- version 3~Beta46
- Fixed issue where processed apps would crash on launch. Thanks to @DomoTM for reporting the bug on the #flex Discord chat room and for testing the fix.
- Thanks to /u/snowleopardw on Reddit for posting the correct entitlements to use with Flex.
- I'm working on fixing app processing on IOS 11, thanks for all the reports. Until then there is a workaround pinned on the Flex Discord chat. Join from the Social screen in the Dash tab.
- version 3~Beta43
- Fixed frameworks missing code signatures that caused crash on startup.
- If you get an error about needing RocketBootstrap, install the beta from the repo https://rpetri.ch/repo/
- version 3~Beta42
- Added iOS 11 support.
- Preliminary support for the Electra jailbreak.
- Now works on the G0blin jailbreak.
- Added a Social section to the Dash tab, with links to the #flex chat room on Discord, and to the Flex Reddit.
- Thanks to Flex moderator iAdam1n for the idea to create a #flex Discord.
- Thanks to exofeel on the new #flex Discord for creating the icon for joining Discord.
- Processed executables and frameworks can now be swiped to delete so they can be processed again.
- Removed Cartography framework.
- Removed Async framework.
- Twitter framework switched from Fabric to TwitterKit.
- If you're wondering why several beta version numbers were skipped, it's because those versions were tested by volunteers on the #flex chat room on Discord.
- version 3~Beta36
- Fixed bug where wrong patch API version was being downloaded and uploaded. Please upgrade and re-download your patches. This was causing a lot of errors with patches. Thanks to Sinfool.
- version 3~Beta35
- Fixes possible crash on add unit, thanks to /u/cycosick on Reddit for the error log.
- Thanks to /u/bdan629 on Reddit for alerting me to this crash also.
- version 3~Beta34
- You can now tap on the libraries section header to show all libraries. Inspired by sinfool's patch and a request by DerLampman on Reddit.
- version 3~Beta33
- Flex now resolves symlinks for app directories and ensures all resolved paths are unique. This should solve the issue of seeing duplicate apps when making a new patch. Thanks to @bashami90 for tweeting me about this.
- version 3~Beta32
- Now reads an executable's run paths and uses them to locate frameworks. This allows for embedded frameworks to be processed. Thanks to cycosick on the /r/flextweak Reddit for reporting this issue!
- version 3~Beta31
- Fixes issue in iOS 10 when SpringBoard messaging server fails to start that causes multiple retries while launching a daemon process that eventually leads to running out of memory. No longer attempts to launch server after initial failure.
- Server Update: Trending tab was showing patches that had been declined from the cloud. This has been fixed.
- Server Update: Search no longer shows patches that have been declined from the cloud.
- version 3~Beta30
- Fixed processing apps on iOS 10.
- Wrote backup method for processing when SpringBoard server can't be contacted.
- version 3~Beta29
- This should fix the bootloop issue on iOS 10. I don't yet have a device that can be jailbroken on iOS 10, still waiting for iPhone 5s support.
- Thanks to @iAdam1n for alpha testing this release on iOS 10.
- version 3~Beta28
- Fixed crash caused by forced unwrapping of an optional after weak hold on it has expired.
- Renamed package to Flex 3 Beta in preparation for release version, and to clear up any confusion.
- version 3~Beta27
- Added alert when toggling patch that targets Flex, allowing you to close Flex, instead of closing Flex without any warning.
- Fixed crash when uploading patch that occurred when Helvetica Neue was not installed.
- version 3~Beta26
- If you're on beta 25, make sure to upgrade this to version before removing or downgrading.
- Fixes issue introduced in Beta 25 that caused an unstable filesystem. No longer installs to /var/stash, and detects if you're upgrading from Beta 25 and fixes the cause of this issue. If you're upgrading from Beta 25 you may need to manually reboot.
- version 3~Beta25
- Fixed 'Edit" navigation bar item not changing to "Done" when in edit mode.
- Fixed race condition crash when reloading application list after app resumes active.
- Moved .app directory from /var/mobile/Documents/ to /var/stash.
- Removed file management tasks from install script.
- Thanks to @Optimo for making me aware of recommended practices for install scripts and installation directories.
- DO NOT REMOVE OR DOWNGRADE THIS PACKAGE IF YOU HAVE BETA 25 INSTALLED. BETA 26 WILL BE OUT SOON TO FIX THIS ISSUE.
- version 3~Beta24
- Patches screen has been redesigned and re-implemented.
- Fixed #1 ranked crash that affected 2,651 users, caused when deconstructed view controller would invalidate cloud patch collection view layout after the layout controller had had it's weak property referencing the view controller destroyed.
- Fixed confetti looking for images in the wrong place causing a crash when Flex 3 was purchased.
- New navigation bar and tab bar colors.
- Navigation bar text has been made thinner.
- Fixed package name mis-capitalization that occurred when changing build scripts that was causing a blank changelog on repo.
- Updated Twitter framework from 2.5 to 2.7
- Updated launch screens with new theme.
- Build script now deletes system's cached version of Flex's launch images, since not even a reboot would show me the new launch screen.
- Fixed commenting screen displaying a white status bar on a light gray navigation bar, making it unreadable.
- version 3~Beta23
- New tab bar! Try it out, tweet me what you think: @punksomething
- Patch submitting now shows a progress pop up.
- Submitting a comment now shows a progress pop up, preventing the multiple submissions that have plagued the comment sections
- Fixed corrupted image views in product tab caused by having a corner radius but not setting the image view to clip to bounds.
- Tappable area of tabs increased by 9 px
- version 3~Beta22
- Moved path of patches.plist to prevent error on iOS 9.3 jailbreak where it would complain about not having enough space. No longer saves on space limited partition.
- Now saves another copy of patches.plist to an unsandboxed directory so apps that can't read the primary patches.plist still get patches applied.
- Fixed route handling of http://getflex.co links.
- Made sign in easier when action requiring sign in is attempted.
- Hid like & repost buttons on patches since they're not enabled yet, and it was causing confusion for users.
- Update: Put out a server update that fixes mix of collations error when uploading a patch that some people were experiencing.
- version 3~Beta21
- Fixed crash issue introduced in Beta 19.
- If you're interested in a longer explanation of why some people were getting crashes, read on. Flex 2's hooking engine is quite complicated, and under some circumstances when a patch had a return value override a crash would occur. I couldn't figure out the crashes, so a long time ago I decided to implement a simpler version of the hooking engine to just handle patches that changed the return value and nothing else. There was a bug in the handling of those patches that caused a null value to get returned when a unit was overriding an "id" type. Earlier today I fixed this bug, but since thousands of patches have been written that expected this behavior, it caused crashes because a new behavior was being executed. To fix this issue, I've added a versioning system to patches, and now patches written before this update will be marked as legacy and executed with their original functionality. If you'd like to upgrade an existing patch to correct functionality, you'll have to edit the patches.plist file and change the patch's apiVersion to 3. Otherwise, all newly created patches will exhibit the updated functionality.
- version 3~Beta20
- Fixes bug that caused uploaded patches not to show up for Flex 2 users. Thanks to Sinfool for reporting this bug.
- Currently around 300 patches have been submitted that were afflicted by the submission bug that affects patches being visible to Flex 2 users. A server-side fix will be rolled out for those later today, and won't require any further updates.
- Update: Server fix has been run, and all patches that didn't show up on Flex 2 should now show up.
- Update: If you're experiencing crashing or safe mode, disable all your patches. A fix for this issue will be rolled out shortly.
- version 3~Beta19
- Fixed bug where overriding an id return value while not overriding any parameters would not work.
- version 3~Beta18
- Fixed bug where uploading a patch with an NSDate override would cause a crash. Thanks to Sinfool for reporting this bug.
- Fixed bug that caused a crash when trying to restart SpringBoard from a System Wide patch.
- Fixed Flex closing un-gracefully when a patch targeting itself was disabled. Now closes gracefully.
- version 3~Beta17
- Fixes bug where patches couldn't be save because a corrupted patch had been downloaded.
- Now gives a descriptive alert when an error occurs while saving patches.
- version 3~Beta16
- Fixed comments not showing date correctly.
- Removed C method overriding code that was causing most reported crashes.
- No longer warms application list in background, as this was causing hundreds of crashes due to a race condition.
- Thinned frameworks for a smaller download size.
- version 3~Beta15
- Comments have been added to patches! I've been working on this for the past few months, and as we get the bugs ironed out, comments will be coming to more areas.
- Minor text fixes (Capitalization of "Installed App Version" in patch info tab)
- Removed auto correction from sign in username field.
- Converted source code to Swift 3 from Swift 2.1
- Decreased dynamic library dependencies for improved launching times.
- Fixes bug where you couldn't upload a patch unless you had purchased Flex 2. Now everyone can upload patches.
- version 3~Beta14
- Fixed iPad crash on tapping share button. Thanks to @cpdigdarkroom for tweeting me about this bug.
- version 3~Beta13
- Completely re-designed Cloud Patch screen. Now supports voting whether a patch works or doesn't work. Displays created date, and updated date. Displays target app version, and the current version of the app you have installed.
- Patches now have URLs associated with them, and can be linked to directly. Tap the share button at the top right of the Cloud Patch screen.
- Added animation to download button when downloading a patch.
- Last update caused an issue with scaling on iPhone 6 & 6+. This has been fixed by replacing the shell script loader with a binary loader.
- Fixed application list only updating jailbreak apps & system apps when Flex is returned from background.
- version 3~Beta12
- Fixed app launch image not working and just displaying black.
- Now uses Flex 3 server for patch searches.
- Added on disk cache of Cloud's applications list to improve app responsiveness.
- Cloud application list filtering and processing now happens in a background thread to avoid stalling the UI.
- Brand new installed applications listing algorithm, with fast caches and warming icon caches on startup.
- Fixed wrong icons being displayed for apps.
- No longer shows Right To Left icons unless interface is Right To Left.
- Fixed icons with transparent backgrounds not displaying a black background like on the home screen.
- Fixed Camera app being displayed with the internal name of "Phoenix".
- Application list now reloads when app is re-activated in case any apps were added or removed.
- Profiling showed slowdown on loading search bar. Removed images that made up search bar as an optimization.
- Profiling showed that displaying app icons was causing a slowdown. Removed old icon masking method and replaced with applying corner radius to app icon layer.
- Server: Optimized patch queries by adding more columns, indexes. Brought queries down from 150-300 seconds to 1-2 seconds.
- Server: Added connecting pooling to cache.
- Server: Found cause of timeout error and mitigated it.
- Server: Patch search re-written in Ruby and moved to Flex 3 server. Added search caching.
- Server: Optimized product listings.
- Known bug: Processing seems like it failed while it works silently in the background. Temporary workaround: Reload screen in a few seconds to check if it's finished.
- version 3~Beta11
- Now installs Flex in user partition to prevent write error bug that commonly prevents installation on iOS 9.3.3 - thanks to @coolstarorg for suggesting this
- Added many accessibility labels.
- Fixed Cancel button not showing up on Twitter sign in.
- I'm aware of an issue with processing apps on iOS 9.3.3, I'm working on fixing it.
- I'm aware of an occasional bug that causes a "timeout" error message when loading certain things from the cloud. I'm working to mitigate this issue and a fix will be rolled out to the cloud server within the next couple of days.
- version 3~Beta10
- Fixed bug causing invalid session error.
- Fixed issue where not being able to connect to Flex's server to add a license after a PayPal payment would cause a license not to be added. Server now talks to PayPal directly.
- If you have an Invalid Session error, please log out and log back in.
- version 3~Beta9
- Installed tab now loads app list from Flex 3 server, instead of relying on Flex 2 server which is getting slowed down by the thousands of downloads.
- Cloud patch screen now loads info from Flex 3 server. Added 4 hour server-side cache, which means that download counts won't immediately update.
- Spent all night optimizing server requests since the repo server keeps getting overwhelmed.
- Switched CDN from S3 to CloudFront for beta downloads. They should be very fast across the entire world now.
- version 3~Beta8
- Added pull to refresh to New, Trending, and Popular patches.
- Added pull to refresh to Updates screen.
- When processing apps now only injects the Flex framework instead of Cydia Substrate
- Updated error message on products screen when user hasn't logged in yet to be a bit more helpful.
- This beta is being served by Amazon's content delivery network for faster downloading, and since these thousands of downloads are slowing down my repo so much.
- version 3~Beta7
- Patches are now working in App Store apps: Fixed bug in iOS 9.3 where Flex thought App Store apps were blacklisted and wouldn't load patches into them.
- version 3~Beta6
- User installed apps location has changed in iOS 9.3 from /var/mobile/Containers/Bundle/Application to /var/containers/Bundle/Application, added checking that folder. This fixes user installed apps not showing up. Thanks to /u/Sniper_GER on Reddit.
- Minor text fixes. Thanks to @cpdigdarkroom for tweeting me about this.
- version 3~Beta5
- Fixed bug when searching classes that caused selecting a class not to work. Thanks to Prouser for reporting this bug.
- Fixed crash when displaying a cloud patch when the server returns an unspecified error.
- version 3~Beta4
- Fixes crash on products screen from random number generator overflowing.
- version 3~Beta3
- Fixed patch downloads missing application identifier, description.
- version 3~Beta2
- Bumped firmware requirement to iOS 9. Certain features require it.
- Updates now show correctly in updates tab.
- version 3~Beta1
- Trending tab added: Most downloaded in the last 24 hours, refreshed every 15 minutes.
- Popular tab & recent tab now use new Ruby server. Results are cached for a faster loading experience.
- Account is required to download patches. Connect with Twitter for one-tap sign in!
- License for Flex 3 can now be purchased within the app, in the products tab. It's tied to your account.
- Please note that this is only the first beta for Flex 3, so don't expect much. I started from scratch writing Flex 3 last year, but I've since decided to start from Flex 2.5 and build from that. There's a lot of code that has to be integrated. The new patch development engine has yet to be added. Stay tuned for exciting changes!