All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Android SDK version: 18.0.4
- iOS SDK version: 6.14.4
- Fixed case where event dispatchers on Android were not initialized before calling onResume at the app launch
- Fixed new jailbreak checks false positives on iOS 14 and 13.
- Fixed false positives with jailbreak on iOS 15 and 16.
- Fixed issue with app crashing on screenshot/screen recording.
- Fixed retrigger jailbreak issue on iOS 15 and 16.
- Android SDK version: 18.0.4
- iOS SDK version: 6.14.1
- Refactor the Android plugin to separate the logic for managing listener states
- Added support for
KernelSUto the existing root detection capabilities - Added support for
HMAto the existing root detection capabilities - Added new malware detection capabilities
- Added
onAutomationDetected()callback toThreatDetectedinterface- We are introducing a new capability, detecting whether the device is being automated using tools like Appium
- Added value restrictions to
externalId- Method
storeExternalId()now returnsExternalIdResult, which indicatesSuccessorErrorwhenexternalIdviolates restrictions
- Method
- Fixed exception handling for the KeyStore
getEntryoperation - Fixed issue in
ScreenProtectorconcerning theonScreenRecordingDetectedinvocations - Merged internal shared libraries into a single one, reducing the final APK size
- Fixed bug related to key storing in keystore type detection (hw-backed keystore check)
- Fixed manifest queries merge
- Removed unused library
tmlib - Refactoring of signature verification code
- Updated compile and target API to 36
- Improved root detection capabilities
- Detection of wireless ADB added to ADB detections
- Added time spoofing detection, detecting an inaccurate device clock. It is a new threat
timeSpoofing.
- Improved jailbreak detection methods.
- Android SDK version: 18.0.2
- iOS SDK version: 6.13.0
- Resolved potential NullPointerException when execution state events are being sent
- Android SDK version: 18.0.2
- iOS SDK version: 6.13.0
- Added cache for freeRASP callbacks when listener is not registered with the app
- Added API for
automationcallback intoThreatEventActions(Android only)
- Prevent multiple registration of the freeRASP listeners on the native side
- Updated compile and target SDK versions to 36 on Android
- Added support for
KernelSUto the existing root detection capabilities - Added support for
HMAto the existing root detection capabilities - Added new malware detection capabilities
- Added
onAutomationDetected()callback toThreatDetectedinterface- We are introducing a new capability, detecting whether the device is being automated using tools like Appium
- Added value restrictions to
externalId- Method
storeExternalId()now returnsExternalIdResult, which indicatesSuccessorErrorwhenexternalIdviolates restrictions
- Method
- Fixed exception handling for the KeyStore
getEntryoperation - Fixed issue in
ScreenProtectorconcerning theonScreenRecordingDetectedinvocations - Merged internal shared libraries into a single one, reducing the final APK size
- Fixed bug related to key storing in keystore type detection (hw-backed keystore check)
- Fixed manifest queries merge
- Removed unused library
tmlib - Refactoring of signature verification code
- Updated compile and target API to 36
- Improved root detection capabilities
- Detection of wireless ADB added to ADB detections
- Android SDK version: 17.0.1
- iOS SDK version: 6.13.0
- Added
killOnBypasstoTalsecConfigthat configures if the app should be terminated when the threat callbacks are suppressed/hooked by an attacker (Android only) (Issue 65) - Added API for
timeSpoofingcallback intoThreatEventActions(Android only) - Added API for
unsecureWificallback intoThreatEventActions(Android only) - Added API for
allChecksFinishedcallback into newRaspExecutionStateEventActionsobject - Added matched permissions to
SuspiciousAppInfoobject when malware detection reason issuspiciousPermission
- Resolved potential collision in threat identifiers
- Added
killOnBypassmethod to theTalsecConfig.Builderthat configures if the app should be terminated when the threat callbacks are suppressed/hooked by an attacker Issue 65 - We are introducing a new capability, detecting whether the device time has been tampered with (
timeSpoofing) - We are introducing a new capability, detecting whether the location is being spoofed on the device (
locationSpoofing) - We are introducing a new capability, detection of unsecure WiFi (
unecureWifi) - Removed deprecated functionality
Pbkdf2Nativeand both related native libraries (libpbkdf2_native.soandlibpolarssl.so) - Added new
RaspExecutionStatewhich containsonAllChecksFinished()method, which is triggered after all checks are completed. - Added matched permissions to
SuspiciousAppInfoobject when malware detection reason issuspiciousPermission - New option to start Talsec,
Talsec.start()takes new parameterTalsecModethat determines the dispatcher thread of initialization and sync checks (uses background thread by default) - Capability to check if another app has an option
REQUEST_INSTALL_PACKAGESenabled in the system settings to malware detection
- Root detection related bugs causing false positives
- ANR issue caused by
registerScreenCaptureCallback()method on the main thread NullPointerExceptionwhen checking key alias in Keystore on Android 7JaCoCoissue causingMethodTooLargeExceptionduring instrumentationDeadApplicationExceptionwhen callingSettings.Global.getIntorSettings.Secure.getInton invalid contextAndroidKeyStorecrashes causingjava.util.concurrent.TimeoutExceptionwhen callingfinalize()method onCipher(GC issues)- Fixed issue with late initializers and
TalsecModecoroutines scopes
- Deprecated Nexus repository removed (GCP artifact registry is the main supported distribution repository)
- Shortened the value of threat detection interval
- Refactoring of internal architecture of SDK that newly uses Coroutines to manage threading
- Update of internal dependencies and security libraries
- Updated internal dependencies
- iOS SDK version: 6.12.1
- Android SDK version: 16.0.2
- Added missing
proguard-rules.prointo package on npmjs
- iOS SDK version: 6.12.1
- Android SDK version: 16.0.2
- Issue with empty
SharedPreferencesfiles
- Decreased version of
Kotlinto2.0.0
- iOS SDK version: 6.12.1
- Android SDK version: 16.0.1
- Added support for 16 KB memory page sizes
- Added
multiInstancecallback- We are introducing a new capability, detecting whether the application is running in various multi instancing environments
- The ADB service running as a root is a signal for root detection
- Improved emulator detection
- Internal security improvements
- Removed malware report duplicates
- Added palera1n jailbreak detection
- Improved Dopamine jailbreak detection
- Resolved memory-related stability issues.
- iOS SDK version: 6.11.0
- Android SDK version: 15.1.0
- Added interface for screenshot / screen recording blocking on iOS
- Added interface for external ID storage
- Added externalId to put an integrator-specified custom identifier into the logs.
- Added eventId to the logs, which is unique per each log. It allows traceability of the same log across various systems.
- New root detection checks added
- Added externalId to put an integrator-specified custom identifier into the logs.
- Added eventId to the logs, which is unique per each log. It allows traceability of the same log across various systems.
- Screen capture protection obscuring app content in screenshots and screen recordings preventing unauthorized content capture. Refer to the freeRASP integration documentation.
- Resolved an issue with the screen recording detection.
- Resolved an issue that prevented Xcode tests from running correctly.
- iOS SDK version: 6.9.0
- Android SDK version: 15.0.0
- Android SDK requires
kotlin_version>=2.0.0
- Compile API increased to 35, dependencies updated
- Internal library obfuscation reworked
- Root detection divided into 2 parts (quick initial checks, and time-demanding asynchronous post checks)
- ANR issues bug-fixing
- Improvement of the obfuscation of the SDK.
- Deep signing of the OpenSSL binaries.
- iOS SDK version: 6.8.0
- Android SDK version: 14.0.1
blockScreenCapturemethod to block/unblock screen captureisScreenCaptureBlockedmethod to get the current screen capture blocking status- New callbacks:
screenshot: Detects when a screenshot is takenscreenRecording: Detects when screen recording is active
- Raised Android compileSDK level to 35
- Set minifyEnabled in plugin to
trueimplicitly on Android
- Passive and active screenshot/screen recording protection
- Improved root detection
- Proguard rules to address warnings from okhttp dependency
- Passive Screenshot/Screen Recording detection
- iOS SDK version: 6.6.3
- Android SDK version: 13.2.0
- Added request integrity information to data collection headers.
- Enhanced and accelerated the data collection logic.
- iOS SDK version: 6.6.3
- Android SDK version: 13.0.0
- App icons for detected malware are not fetched automatically anymore, which reduces computation required to retrieve malware data. From now on, app icons have to be retrieved using the
getAppIconmethod - Parsing of malware data is now async
- Malware data is now parsed on background thread to improve responsiveness
- Added
adbEnabledcallback, which allows you to detect USB debugging option enabled in the developer settings on the device
- ADB detection feature
- Android SDK version: 12.0.0
- iOS SDK version: 6.6.3
- Added configuration fields for malware detection
- Resolved compatibilty issues with JDK 21 (issue #21)
- New feature: malware detection as a new callback for enhanced app security
- Refactoring Magisk checks in the root detection
- Enhanced security with Serotonin Jailbreak Detection to identify compromised devices.
- Updated SDK code signing; it will now be signed with:
- Team ID: PBDDS45LQS
- Team Name: Lynx SFT s.r.o.
- Android SDK version: 11.1.3
- iOS SDK version: 6.6.1
- Renewed the signing certificate
- Android SDK version: 11.1.3
- iOS SDK version: 6.6.0
- Reported ANR issues present on some devices were resolved (GH Flutter issue #138)
- Reported crashes caused by ConcurrentModificationException and NullPointerException were resolved (GH Flutter issue #140)
- Reported crashes caused by the UnsupportedOperationException were resolved
- Android SDK version: 11.1.1
- iOS SDK version: 6.6.0
- False positives for hook detection
- Android SDK version: 11.1.0
- iOS SDK version: 6.6.0
- Improved error messages when validation of the freeRASP configuration fails
- Added the auditing of the internal execution for the future check optimization and overall security improvements.
- Fixed native crashes (SEGFAULT errors) in
ifpipmethod - Fixed collision for command line tools (like ping) invoked without absolute path
- ❗️Breaking: Changed the way TalsecConfig is created, we introduced a Builder pattern to make the process more streamlined and readable
- Updated OpenSSL to version 3.0.14
- Updated CURL to version 8.8.0
- Refactored fetching the list of installed applications for root and hook detection.
- Dopamine jailbreak detection.
- Enhanced and accelerated the data collection logic
- Updated OpenSSL to version 3.0.14
- Updated CURL to version 8.8.0
- CHANGELOG now adheres to the Keep a Changelog format.
- ⚡ Added new threat
systemVPNfor VPN detection - 📄 Documentation updates
- ⚡ Added new threat
devModefor Developer mode detection - ⚡ Fixed proguard warning in specific versions of RN
- ⚡ Fixed issue with Arabic alphabet in logs caused by the device’s default system locale
- ✔️ Increased the version of the GMS dependency
- ✔️ Updated CA bundle
- ⚡ Fixed issue with Arabic alphabet in logs caused by the device’s default system locale
- ⚡ Passcode check is now periodical
- ✔️ Updated CA bundle
- ⚡ Updated freeRASP SDK artifact hosting ensuring better stability and availibility
- 📄 Documentation updates
- ⚡ Shortened duration of threat evaluation
- ⚡ Fixed a native crash bug during one of the native root checks (detected after NDK upgrade)
- ⚡ Improved appIntegrity check and its logging
- ⚡ Updated
CURLto8.5.0andOpenSSLto1.1.1w
- ❗ Added Privacy Manifest
- ❗ Added codesigning for the SDK, it is signed by:
- Team ID:
ASQC376HCN - Team Name:
AHEAD iTec, s.r.o.
- Team ID:
- ⚡ Improved obfuscation of Swift and C strings
- ⚡ Fixed memory leak (freeRASP iOS issue #13)
- ⚡ Updated
CURLto8.5.0andOpenSSLto1.1.1w
- ⚡ Fixed bug that prevented firing callbacks in specific situations
- ⚡ Fixed bug that caused app being killed in specific situations (#42)
- ⚡ Improved message passing between native iOS/Android and Capacitor
- ✔️ Restricted message passing to valid callbacks only. If an invalid callback is received, the SDK will kill the app
- ⚡ Improved reaction obfuscation
- 📄 Documentation updates and improvements
- ⚡ Fixed ProviderException which could be occassionally triggered
- ❗ Raised supported Xcode version to 14.3.1
- ⚡ Improved SDK obfuscation
- 📄 Documentation updates and improvements
- ✔️ updated CA bundle for logging pinning
- ✔️ added error logging of network issues within the logging process
- ✔️ added retry politics for logging
- ⚡ fixed issue with DeadObjectException on Android 5 and 6 caused by excessive PackageManager.queryIntentActivities() usage
- ⚡ improved root detection capabilities
- 🎉 Initial release of freeRASP for Capacitor
- ℹ️ Based on Android freeRASP SDK 8.2.0 and iOS freeRASP SDK 5.1.0