release: freeRASP KMP 2.1.0 (Android SDK 19.2.1, iOS SDK 7.1.2) - #7
Open
tompsota wants to merge 3 commits into
Open
release: freeRASP KMP 2.1.0 (Android SDK 19.2.1, iOS SDK 7.1.2)#7tompsota wants to merge 3 commits into
tompsota wants to merge 3 commits into
Conversation
Bump TalsecSecurity-Community-KMP to 19.2.1 and migrate the Android source set to the SDK's new package and callback names. 19.2.1 moves the SDK from com.aheaditec.talsec_security.security.api to app.talsec.rasp.security.api and renames every ThreatListener callback to match its threat name (onRootDetected -> onPrivilegedAccess, onADBEnabledDetected -> onAdbEnabled, and so on). Expose the release's new onBootloader() callback as FreeRaspEvent.Bootloader. Like Automation, it is Android only: the iOS string mapper has no entry for it, so it never fires there. Resolve the SDK's JitPack dependencies from the Talsec common registry instead of jitpack.io. Co-authored-by: Cursor <cursoragent@cursor.com>
Update TalsecRuntime.xcframework from 6.14.4 to 7.1.2. Changelog covers 6.14.5, 7.1.0 and 7.1.2 since the repo was three releases behind. Public Swift API change is additive, so cinterop and the bridge are unchanged.
TalsecBridge.xcframework embeds its own copy of TalsecRuntime.framework, which was left at 6.14.4 by the SDK bump. Replace it in both slices with 7.1.2, keeping the trimmed layout (no Headers/Modules) and ad-hoc signature that Xcode's RemoveHeadersOnCopy/CodeSignOnCopy embed produces, then re-sign the enclosing TalsecBridge.framework so its CodeResources match. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rolls Android Talsec SDK 19.2.1 into the KMP library (from 18.3.0) and bumps the library to 2.1.0. Also rolls the iOS TalsecRuntime to 7.1.2 (from 6.14.4).
SDK package and callback migration (required)
19.2.1 is a breaking SDK release beyond what the release notes describe:
com.aheaditec.talsec_security.security.apitoapp.talsec.rasp.security.api(4 files inandroidMain).ThreatListenercallback was renamed to match its threat name —onRootDetected()→onPrivilegedAccess(),onUnlockedDeviceDetected()→onPasscode(),onADBEnabledDetected()→onAdbEnabled(),onSystemVPNDetected()→onSystemVpn(), and so on for all 21.Because the package moved as well, this fails to compile rather than silently delivering no threats.
New
FreeRaspEvent.Bootloader(Android only)The release adds
onBootloader(), reporting an unlocked or compromised bootloader. It is surfaced as a newFreeRaspEvent.BootloaderincommonMain, markedAndroid only.in its KDoc following theAutomationprecedent.freerasp_event_mapper.ios.ktis deliberately unchanged — iOS has no matching threat string, so the event never fires there, exactly as withAutomation,UnsecureWifi, andLocationSpoofing.Note for consumers: adding a member to the sealed
FreeRaspEventwill break any exhaustivewhenover it. This follows the precedent from 1.1.0, whereFreeRaspEvent.Automationwas added as a minor bump under Added rather than Breaking.Dependency resolution
jitpack.iois replaced byhttps://europe-west3-maven.pkg.dev/talsec-artifact-repository/common, which mirrors the SDK's two JitPack dependencies (fingerprint-android,truetime-android).iOS SDK 7.1.2
TalsecRuntime.xcframeworkunderlibrary/src/iosMain/nativeTalsec/goes from 6.14.4 straight to 7.1.2, so the changelog covers three SDK releases: 6.14.5, 7.1.0 and 7.1.2.The framework diff is modification-only. The public Swift API gains exactly one additive type,
ScreenCaptureBlockError; no existing declaration changed, so the cinterop def file and the Kotlin bridge are unchanged.TalsecBridge.xcframeworkembeds its own nested copy ofTalsecRuntime.framework, which the SDK bump alone left at 6.14.4. That stale copy is not what ran —TalsecBridgeresolves@rpath/TalsecRuntime.framework/TalsecRuntimeand its rpath list puts@executable_path/Frameworksahead of@loader_path/Frameworks, so the top-level 7.1.2 copy won — but it still shipped a duplicate 6.14.4 binary inside the app bundle.TalsecBridgehas no source or build recipe in this repo and is not published inreleases-ios, so it was patched in place: the nested framework in both slices was replaced with 7.1.2, keeping the trimmed layout (noHeaders/orModules/) and ad-hoc signature that Xcode'sRemoveHeadersOnCopy+CodeSignOnCopyembed produces, and the enclosingTalsecBridge.frameworkwas re-signed so itsCodeResourcesmatch.TalsecBridge's own version is unchanged at 1.0; only the runtime it carries moved.This is a stopgap. The clean fix is for
TalsecBridgeto be rebuilt against 7.1.2 upstream.dSYMs are attached to this description.
Test plan
:library:compileDebugKotlinAndroidsucceeds against SDK 19.2.1.:example:composeApp:assembleDebugsucceeds. The exhaustivewhenin the example'stoCheckId()is the compile-time guarantee that the new event is handled everywhere.app.talsec.raspclasses are loaded at runtime.:library:cinteropTalsecIosSimulatorArm64and:example:composeApp:linkDebugFrameworkIosSimulatorArm64succeed against 7.1.2.iosAppbuilds for the iOS simulator through the GradleembedAndSignAppleFrameworkForXcodephase.vmmapconfirms TalsecRuntime 7.1.2 is the mapped image.codesign --verify --strict --deeppasses on both patchedTalsecBridge.frameworkslices, and the nested framework keeps its original trimmed layout and architectures (arm64;x86_64 arm64).TalsecRuntimecopies in the app bundle now report 7.1.2, and the dashboard result is unchanged.Threats flagged on the emulator (app integrity, debug, simulator, unofficial store, obfuscation issues, malware, ADB, passcode, secure hardware) are the expected debug-build-on-emulator set.
dSYMs.zip
Made with Cursor