Skip to content

Commit 5d77c47

Browse files
tompsotayardexxxprikryl2
authored
feat: add multi instance detection, release 4.2.0 (#114)
* feat: update ios sdk * feat: add android sdk 16.0.1 * feat: add multi instance detection * release: freeRASP 4.2.0 * Update CHANGELOG.md Co-authored-by: Ondřej Přikryl <[email protected]> --------- Co-authored-by: Jaroslav Novotný <[email protected]> Co-authored-by: Ondřej Přikryl <[email protected]>
1 parent 9620626 commit 5d77c47

File tree

35 files changed

+609
-549
lines changed

35 files changed

+609
-549
lines changed

CHANGELOG.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,43 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [4.2.0] - 2025-07-16
9+
10+
- iOS SDK version: 6.12.1
11+
- Android SDK version: 16.0.1
12+
13+
### Android
14+
15+
#### Added
16+
17+
- Added support for 16 KB memory page sizes
18+
- Added `multiInstance` callback
19+
- Detecting whether the application is installed/running in various multi-instancing environments (e.g. Parallel Space)
20+
21+
#### Changed
22+
23+
- The ADB service running as a root is a signal for root detection
24+
- Improved emulator detection
25+
- Internal security improvements
26+
27+
#### Fixed
28+
29+
- Removed malware report duplicates
30+
31+
### iOS
32+
33+
#### Added
34+
35+
- Added palera1n jailbreak detection
36+
37+
#### Changed
38+
39+
- Improved Dopamine jailbreak detection
40+
41+
#### Fixed
42+
43+
- Resolved memory-related stability issues.
44+
845
## [4.1.0] - 2025-05-15
946

1047
- iOS SDK version: 6.11.0

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ dependencies {
9999
implementation "com.facebook.react:react-native:$react_native_version"
100100
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
101101
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1"
102-
implementation "com.aheaditec.talsec.security:TalsecSecurity-Community-ReactNative:15.1.0"
102+
implementation "com.aheaditec.talsec.security:TalsecSecurity-Community-ReactNative:16.0.1"
103103
}
104104

105105
if (isNewArchitectureEnabled()) {

android/src/main/java/com/freeraspreactnative/FreeraspThreatHandler.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ internal object FreeraspThreatHandler : ThreatListener.ThreatDetected, ThreatLis
7171
listener?.threatDetected(Threat.ScreenRecording)
7272
}
7373

74+
override fun onMultiInstanceDetected() {
75+
listener?.threatDetected(Threat.MultiInstance)
76+
}
77+
7478
internal interface TalsecReactNative {
7579
fun threatDetected(threatType: Threat)
7680

android/src/main/java/com/freeraspreactnative/Threat.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ internal sealed class Threat(val value: Int) {
2727
object ADBEnabled : Threat((10000..999999999).random())
2828
object Screenshot : Threat((10000..999999999).random())
2929
object ScreenRecording : Threat((10000..999999999).random())
30+
object MultiInstance : Threat((10000..999999999).random())
3031

3132
companion object {
3233
internal fun getThreatValues(): WritableArray {
@@ -47,7 +48,8 @@ internal sealed class Threat(val value: Int) {
4748
Malware.value,
4849
ADBEnabled.value,
4950
Screenshot.value,
50-
ScreenRecording.value
51+
ScreenRecording.value,
52+
MultiInstance.value
5153
)
5254
)
5355
}

example/src/App.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,16 @@ const App = () => {
206206
)
207207
);
208208
},
209+
// Android only
210+
multiInstance: () => {
211+
setAppChecks((currentState) =>
212+
currentState.map((threat) =>
213+
threat.name === 'Multi Instance'
214+
? { ...threat, status: 'nok' }
215+
: threat
216+
)
217+
);
218+
},
209219
};
210220

211221
const addItemsToMalwareWhitelist = async () => {

example/src/checks.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ export const androidChecks = [
2020
{ name: 'Developer Mode', status: 'ok' },
2121
{ name: 'Malware', status: 'ok' },
2222
{ name: 'ADB Enabled', status: 'ok' },
23+
{ name: 'Multi Instance', status: 'ok' },
2324
];

ios/TalsecRuntime.xcframework/Info.plist

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,32 @@
88
<key>BinaryPath</key>
99
<string>TalsecRuntime.framework/TalsecRuntime</string>
1010
<key>LibraryIdentifier</key>
11-
<string>ios-arm64_x86_64-simulator</string>
11+
<string>ios-arm64</string>
1212
<key>LibraryPath</key>
1313
<string>TalsecRuntime.framework</string>
1414
<key>SupportedArchitectures</key>
1515
<array>
1616
<string>arm64</string>
17-
<string>x86_64</string>
1817
</array>
1918
<key>SupportedPlatform</key>
2019
<string>ios</string>
21-
<key>SupportedPlatformVariant</key>
22-
<string>simulator</string>
2320
</dict>
2421
<dict>
2522
<key>BinaryPath</key>
2623
<string>TalsecRuntime.framework/TalsecRuntime</string>
2724
<key>LibraryIdentifier</key>
28-
<string>ios-arm64</string>
25+
<string>ios-arm64_x86_64-simulator</string>
2926
<key>LibraryPath</key>
3027
<string>TalsecRuntime.framework</string>
3128
<key>SupportedArchitectures</key>
3229
<array>
3330
<string>arm64</string>
31+
<string>x86_64</string>
3432
</array>
3533
<key>SupportedPlatform</key>
3634
<string>ios</string>
35+
<key>SupportedPlatformVariant</key>
36+
<string>simulator</string>
3737
</dict>
3838
</array>
3939
<key>CFBundlePackageType</key>
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)