diff --git a/README.md b/README.md
index f50f60d..e637bf4 100644
--- a/README.md
+++ b/README.md
@@ -38,22 +38,26 @@ interface CheckStatus {
interface RootCheckResult {
isRooted: boolean;
- checkStatus: CheckStatus[];
+ checkStatus: CheckStatus[]; //Android Only
}
```
### Platform Supported:
- [x] Android
-- [ ] iOS
+- [x] iOS
### Screenshot
-
+| Android | iOS |
+| ---------------- | -------------------------- |
+| | |
# Root checks
+### Android
+
These are the native checks:
- TEST KEYS
@@ -70,6 +74,17 @@ These are the native checks:
- WRONG PATH PERMITION
- HOOKS
+### iOS
+
+These are the checks that library detects in iOS while determining whether the device is rooted or not:
+
+- Cydia Installed
+- Undecimus Installed
+- Sileo Installed
+- Zbra Installed
+- System path for Cydia/Shadow etc like tools
+- Suspecious object classes
+
### False positives
Note that sometimes the `bool isFoundBusyboxBinary()` method can return a false positive.
diff --git a/apk/app.png b/apk/app.png
index 42f9b6a..eda370d 100644
Binary files a/apk/app.png and b/apk/app.png differ
diff --git a/apk/ios.png b/apk/ios.png
new file mode 100644
index 0000000..66bc827
Binary files /dev/null and b/apk/ios.png differ
diff --git a/example/ios/.xcode.env.local b/example/ios/.xcode.env.local
new file mode 100644
index 0000000..21de759
--- /dev/null
+++ b/example/ios/.xcode.env.local
@@ -0,0 +1,2 @@
+export NODE_BINARY=/Users/anshulthakur/.nvm/versions/node/v18.16.1/bin/node
+
diff --git a/example/ios/DetectFridaExample.xcodeproj/project.pbxproj b/example/ios/DetectFridaExample.xcodeproj/project.pbxproj
index e8692cc..4f4ca39 100644
--- a/example/ios/DetectFridaExample.xcodeproj/project.pbxproj
+++ b/example/ios/DetectFridaExample.xcodeproj/project.pbxproj
@@ -544,7 +544,7 @@
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
- "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
+ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
@@ -572,6 +572,7 @@
);
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
+ OTHER_CFLAGS = "$(inherited)";
OTHER_CPLUSPLUSFLAGS = (
"$(OTHER_CFLAGS)",
"-DFOLLY_NO_CONFIG",
@@ -579,7 +580,13 @@
"-DFOLLY_USE_LIBCPP=1",
"-DFOLLY_CFG_NO_COROUTINES=1",
);
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ " ",
+ );
+ REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
+ USE_HERMES = true;
};
name = Debug;
};
@@ -616,7 +623,7 @@
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
- "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
+ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -636,6 +643,7 @@
"\"$(inherited)\"",
);
MTL_ENABLE_DEBUG_INFO = NO;
+ OTHER_CFLAGS = "$(inherited)";
OTHER_CPLUSPLUSFLAGS = (
"$(OTHER_CFLAGS)",
"-DFOLLY_NO_CONFIG",
@@ -643,7 +651,13 @@
"-DFOLLY_USE_LIBCPP=1",
"-DFOLLY_CFG_NO_COROUTINES=1",
);
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ " ",
+ );
+ REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
+ USE_HERMES = true;
VALIDATE_PRODUCT = YES;
};
name = Release;
diff --git a/example/ios/DetectFridaExample.xcworkspace/contents.xcworkspacedata b/example/ios/DetectFridaExample.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..b27ff47
--- /dev/null
+++ b/example/ios/DetectFridaExample.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/example/ios/DetectFridaExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/example/ios/DetectFridaExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/example/ios/DetectFridaExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock
new file mode 100644
index 0000000..6a3316e
--- /dev/null
+++ b/example/ios/Podfile.lock
@@ -0,0 +1,1380 @@
+PODS:
+ - boost (1.83.0)
+ - CocoaAsyncSocket (7.6.5)
+ - DoubleConversion (1.1.6)
+ - FBLazyVector (0.73.6)
+ - FBReactNativeSpec (0.73.6):
+ - RCT-Folly (= 2022.05.16.00)
+ - RCTRequired (= 0.73.6)
+ - RCTTypeSafety (= 0.73.6)
+ - React-Core (= 0.73.6)
+ - React-jsi (= 0.73.6)
+ - ReactCommon/turbomodule/core (= 0.73.6)
+ - Flipper (0.201.0):
+ - Flipper-Folly (~> 2.6)
+ - Flipper-Boost-iOSX (1.76.0.1.11)
+ - Flipper-DoubleConversion (3.2.0.1)
+ - Flipper-Fmt (7.1.7)
+ - Flipper-Folly (2.6.10):
+ - Flipper-Boost-iOSX
+ - Flipper-DoubleConversion
+ - Flipper-Fmt (= 7.1.7)
+ - Flipper-Glog
+ - libevent (~> 2.1.12)
+ - OpenSSL-Universal (= 1.1.1100)
+ - Flipper-Glog (0.5.0.5)
+ - Flipper-PeerTalk (0.0.4)
+ - FlipperKit (0.201.0):
+ - FlipperKit/Core (= 0.201.0)
+ - FlipperKit/Core (0.201.0):
+ - Flipper (~> 0.201.0)
+ - FlipperKit/CppBridge
+ - FlipperKit/FBCxxFollyDynamicConvert
+ - FlipperKit/FBDefines
+ - FlipperKit/FKPortForwarding
+ - SocketRocket (~> 0.6.0)
+ - FlipperKit/CppBridge (0.201.0):
+ - Flipper (~> 0.201.0)
+ - FlipperKit/FBCxxFollyDynamicConvert (0.201.0):
+ - Flipper-Folly (~> 2.6)
+ - FlipperKit/FBDefines (0.201.0)
+ - FlipperKit/FKPortForwarding (0.201.0):
+ - CocoaAsyncSocket (~> 7.6)
+ - Flipper-PeerTalk (~> 0.0.4)
+ - FlipperKit/FlipperKitHighlightOverlay (0.201.0)
+ - FlipperKit/FlipperKitLayoutHelpers (0.201.0):
+ - FlipperKit/Core
+ - FlipperKit/FlipperKitHighlightOverlay
+ - FlipperKit/FlipperKitLayoutTextSearchable
+ - FlipperKit/FlipperKitLayoutIOSDescriptors (0.201.0):
+ - FlipperKit/Core
+ - FlipperKit/FlipperKitHighlightOverlay
+ - FlipperKit/FlipperKitLayoutHelpers
+ - FlipperKit/FlipperKitLayoutPlugin (0.201.0):
+ - FlipperKit/Core
+ - FlipperKit/FlipperKitHighlightOverlay
+ - FlipperKit/FlipperKitLayoutHelpers
+ - FlipperKit/FlipperKitLayoutIOSDescriptors
+ - FlipperKit/FlipperKitLayoutTextSearchable
+ - FlipperKit/FlipperKitLayoutTextSearchable (0.201.0)
+ - FlipperKit/FlipperKitNetworkPlugin (0.201.0):
+ - FlipperKit/Core
+ - FlipperKit/FlipperKitReactPlugin (0.201.0):
+ - FlipperKit/Core
+ - FlipperKit/FlipperKitUserDefaultsPlugin (0.201.0):
+ - FlipperKit/Core
+ - FlipperKit/SKIOSNetworkPlugin (0.201.0):
+ - FlipperKit/Core
+ - FlipperKit/FlipperKitNetworkPlugin
+ - fmt (6.2.1)
+ - glog (0.3.5)
+ - hermes-engine (0.73.6):
+ - hermes-engine/Pre-built (= 0.73.6)
+ - hermes-engine/Pre-built (0.73.6)
+ - libevent (2.1.12)
+ - OpenSSL-Universal (1.1.1100)
+ - RCT-Folly (2022.05.16.00):
+ - boost
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - RCT-Folly/Default (= 2022.05.16.00)
+ - RCT-Folly/Default (2022.05.16.00):
+ - boost
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - RCT-Folly/Fabric (2022.05.16.00):
+ - boost
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - RCT-Folly/Futures (2022.05.16.00):
+ - boost
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - libevent
+ - RCTRequired (0.73.6)
+ - RCTTypeSafety (0.73.6):
+ - FBLazyVector (= 0.73.6)
+ - RCTRequired (= 0.73.6)
+ - React-Core (= 0.73.6)
+ - React (0.73.6):
+ - React-Core (= 0.73.6)
+ - React-Core/DevSupport (= 0.73.6)
+ - React-Core/RCTWebSocket (= 0.73.6)
+ - React-RCTActionSheet (= 0.73.6)
+ - React-RCTAnimation (= 0.73.6)
+ - React-RCTBlob (= 0.73.6)
+ - React-RCTImage (= 0.73.6)
+ - React-RCTLinking (= 0.73.6)
+ - React-RCTNetwork (= 0.73.6)
+ - React-RCTSettings (= 0.73.6)
+ - React-RCTText (= 0.73.6)
+ - React-RCTVibration (= 0.73.6)
+ - React-callinvoker (0.73.6)
+ - React-Codegen (0.73.6):
+ - DoubleConversion
+ - FBReactNativeSpec
+ - glog
+ - hermes-engine
+ - RCT-Folly
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-jsi
+ - React-jsiexecutor
+ - React-NativeModulesApple
+ - React-rncore
+ - ReactCommon/turbomodule/bridging
+ - ReactCommon/turbomodule/core
+ - React-Core (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core/Default (= 0.73.6)
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-Core/CoreModulesHeaders (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core/Default
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-Core/Default (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-Core/DevSupport (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core/Default (= 0.73.6)
+ - React-Core/RCTWebSocket (= 0.73.6)
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector (= 0.73.6)
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-Core/RCTActionSheetHeaders (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core/Default
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-Core/RCTAnimationHeaders (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core/Default
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-Core/RCTBlobHeaders (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core/Default
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-Core/RCTImageHeaders (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core/Default
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-Core/RCTLinkingHeaders (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core/Default
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-Core/RCTNetworkHeaders (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core/Default
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-Core/RCTSettingsHeaders (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core/Default
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-Core/RCTTextHeaders (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core/Default
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-Core/RCTVibrationHeaders (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core/Default
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-Core/RCTWebSocket (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core/Default (= 0.73.6)
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.6.1)
+ - Yoga
+ - React-CoreModules (0.73.6):
+ - RCT-Folly (= 2022.05.16.00)
+ - RCTTypeSafety (= 0.73.6)
+ - React-Codegen
+ - React-Core/CoreModulesHeaders (= 0.73.6)
+ - React-jsi (= 0.73.6)
+ - React-NativeModulesApple
+ - React-RCTBlob
+ - React-RCTImage (= 0.73.6)
+ - ReactCommon
+ - SocketRocket (= 0.6.1)
+ - React-cxxreact (0.73.6):
+ - boost (= 1.83.0)
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-callinvoker (= 0.73.6)
+ - React-debug (= 0.73.6)
+ - React-jsi (= 0.73.6)
+ - React-jsinspector (= 0.73.6)
+ - React-logger (= 0.73.6)
+ - React-perflogger (= 0.73.6)
+ - React-runtimeexecutor (= 0.73.6)
+ - React-debug (0.73.6)
+ - React-Fabric (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric/animations (= 0.73.6)
+ - React-Fabric/attributedstring (= 0.73.6)
+ - React-Fabric/componentregistry (= 0.73.6)
+ - React-Fabric/componentregistrynative (= 0.73.6)
+ - React-Fabric/components (= 0.73.6)
+ - React-Fabric/core (= 0.73.6)
+ - React-Fabric/imagemanager (= 0.73.6)
+ - React-Fabric/leakchecker (= 0.73.6)
+ - React-Fabric/mounting (= 0.73.6)
+ - React-Fabric/scheduler (= 0.73.6)
+ - React-Fabric/telemetry (= 0.73.6)
+ - React-Fabric/templateprocessor (= 0.73.6)
+ - React-Fabric/textlayoutmanager (= 0.73.6)
+ - React-Fabric/uimanager (= 0.73.6)
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/animations (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/attributedstring (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/componentregistry (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/componentregistrynative (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric/components/inputaccessory (= 0.73.6)
+ - React-Fabric/components/legacyviewmanagerinterop (= 0.73.6)
+ - React-Fabric/components/modal (= 0.73.6)
+ - React-Fabric/components/rncore (= 0.73.6)
+ - React-Fabric/components/root (= 0.73.6)
+ - React-Fabric/components/safeareaview (= 0.73.6)
+ - React-Fabric/components/scrollview (= 0.73.6)
+ - React-Fabric/components/text (= 0.73.6)
+ - React-Fabric/components/textinput (= 0.73.6)
+ - React-Fabric/components/unimplementedview (= 0.73.6)
+ - React-Fabric/components/view (= 0.73.6)
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/inputaccessory (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/legacyviewmanagerinterop (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/modal (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/rncore (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/root (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/safeareaview (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/scrollview (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/text (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/textinput (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/unimplementedview (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/view (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-Fabric/core (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/imagemanager (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/leakchecker (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/mounting (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/scheduler (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/telemetry (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/templateprocessor (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/textlayoutmanager (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric/uimanager
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/uimanager (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-FabricImage (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - RCTRequired (= 0.73.6)
+ - RCTTypeSafety (= 0.73.6)
+ - React-Fabric
+ - React-graphics
+ - React-ImageManager
+ - React-jsi
+ - React-jsiexecutor (= 0.73.6)
+ - React-logger
+ - React-rendererdebug
+ - React-utils
+ - ReactCommon
+ - Yoga
+ - React-graphics (0.73.6):
+ - glog
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - React-Core/Default (= 0.73.6)
+ - React-utils
+ - React-hermes (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - RCT-Folly/Futures (= 2022.05.16.00)
+ - React-cxxreact (= 0.73.6)
+ - React-jsi
+ - React-jsiexecutor (= 0.73.6)
+ - React-jsinspector (= 0.73.6)
+ - React-perflogger (= 0.73.6)
+ - React-ImageManager (0.73.6):
+ - glog
+ - RCT-Folly/Fabric
+ - React-Core/Default
+ - React-debug
+ - React-Fabric
+ - React-graphics
+ - React-rendererdebug
+ - React-utils
+ - React-jserrorhandler (0.73.6):
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - React-debug
+ - React-jsi
+ - React-Mapbuffer
+ - React-jsi (0.73.6):
+ - boost (= 1.83.0)
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-jsiexecutor (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-cxxreact (= 0.73.6)
+ - React-jsi (= 0.73.6)
+ - React-perflogger (= 0.73.6)
+ - React-jsinspector (0.73.6)
+ - React-logger (0.73.6):
+ - glog
+ - React-Mapbuffer (0.73.6):
+ - glog
+ - React-debug
+ - react-native-detect-frida (0.1.1):
+ - glog
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Core
+ - React-nativeconfig (0.73.6)
+ - React-NativeModulesApple (0.73.6):
+ - glog
+ - hermes-engine
+ - React-callinvoker
+ - React-Core
+ - React-cxxreact
+ - React-jsi
+ - React-runtimeexecutor
+ - ReactCommon/turbomodule/bridging
+ - ReactCommon/turbomodule/core
+ - React-perflogger (0.73.6)
+ - React-RCTActionSheet (0.73.6):
+ - React-Core/RCTActionSheetHeaders (= 0.73.6)
+ - React-RCTAnimation (0.73.6):
+ - RCT-Folly (= 2022.05.16.00)
+ - RCTTypeSafety
+ - React-Codegen
+ - React-Core/RCTAnimationHeaders
+ - React-jsi
+ - React-NativeModulesApple
+ - ReactCommon
+ - React-RCTAppDelegate (0.73.6):
+ - RCT-Folly
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-CoreModules
+ - React-hermes
+ - React-nativeconfig
+ - React-NativeModulesApple
+ - React-RCTFabric
+ - React-RCTImage
+ - React-RCTNetwork
+ - React-runtimescheduler
+ - ReactCommon
+ - React-RCTBlob (0.73.6):
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Codegen
+ - React-Core/RCTBlobHeaders
+ - React-Core/RCTWebSocket
+ - React-jsi
+ - React-NativeModulesApple
+ - React-RCTNetwork
+ - ReactCommon
+ - React-RCTFabric (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2022.05.16.00)
+ - React-Core
+ - React-debug
+ - React-Fabric
+ - React-FabricImage
+ - React-graphics
+ - React-ImageManager
+ - React-jsi
+ - React-nativeconfig
+ - React-RCTImage
+ - React-RCTText
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - Yoga
+ - React-RCTImage (0.73.6):
+ - RCT-Folly (= 2022.05.16.00)
+ - RCTTypeSafety
+ - React-Codegen
+ - React-Core/RCTImageHeaders
+ - React-jsi
+ - React-NativeModulesApple
+ - React-RCTNetwork
+ - ReactCommon
+ - React-RCTLinking (0.73.6):
+ - React-Codegen
+ - React-Core/RCTLinkingHeaders (= 0.73.6)
+ - React-jsi (= 0.73.6)
+ - React-NativeModulesApple
+ - ReactCommon
+ - ReactCommon/turbomodule/core (= 0.73.6)
+ - React-RCTNetwork (0.73.6):
+ - RCT-Folly (= 2022.05.16.00)
+ - RCTTypeSafety
+ - React-Codegen
+ - React-Core/RCTNetworkHeaders
+ - React-jsi
+ - React-NativeModulesApple
+ - ReactCommon
+ - React-RCTSettings (0.73.6):
+ - RCT-Folly (= 2022.05.16.00)
+ - RCTTypeSafety
+ - React-Codegen
+ - React-Core/RCTSettingsHeaders
+ - React-jsi
+ - React-NativeModulesApple
+ - ReactCommon
+ - React-RCTText (0.73.6):
+ - React-Core/RCTTextHeaders (= 0.73.6)
+ - Yoga
+ - React-RCTVibration (0.73.6):
+ - RCT-Folly (= 2022.05.16.00)
+ - React-Codegen
+ - React-Core/RCTVibrationHeaders
+ - React-jsi
+ - React-NativeModulesApple
+ - ReactCommon
+ - React-rendererdebug (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - RCT-Folly (= 2022.05.16.00)
+ - React-debug
+ - React-rncore (0.73.6)
+ - React-runtimeexecutor (0.73.6):
+ - React-jsi (= 0.73.6)
+ - React-runtimescheduler (0.73.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-callinvoker
+ - React-cxxreact
+ - React-debug
+ - React-jsi
+ - React-rendererdebug
+ - React-runtimeexecutor
+ - React-utils
+ - React-utils (0.73.6):
+ - glog
+ - RCT-Folly (= 2022.05.16.00)
+ - React-debug
+ - ReactCommon (0.73.6):
+ - React-logger (= 0.73.6)
+ - ReactCommon/turbomodule (= 0.73.6)
+ - ReactCommon/turbomodule (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-callinvoker (= 0.73.6)
+ - React-cxxreact (= 0.73.6)
+ - React-jsi (= 0.73.6)
+ - React-logger (= 0.73.6)
+ - React-perflogger (= 0.73.6)
+ - ReactCommon/turbomodule/bridging (= 0.73.6)
+ - ReactCommon/turbomodule/core (= 0.73.6)
+ - ReactCommon/turbomodule/bridging (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-callinvoker (= 0.73.6)
+ - React-cxxreact (= 0.73.6)
+ - React-jsi (= 0.73.6)
+ - React-logger (= 0.73.6)
+ - React-perflogger (= 0.73.6)
+ - ReactCommon/turbomodule/core (0.73.6):
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2022.05.16.00)
+ - React-callinvoker (= 0.73.6)
+ - React-cxxreact (= 0.73.6)
+ - React-jsi (= 0.73.6)
+ - React-logger (= 0.73.6)
+ - React-perflogger (= 0.73.6)
+ - SocketRocket (0.6.1)
+ - Yoga (1.14.0)
+
+DEPENDENCIES:
+ - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
+ - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
+ - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
+ - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
+ - Flipper (= 0.201.0)
+ - Flipper-Boost-iOSX (= 1.76.0.1.11)
+ - Flipper-DoubleConversion (= 3.2.0.1)
+ - Flipper-Fmt (= 7.1.7)
+ - Flipper-Folly (= 2.6.10)
+ - Flipper-Glog (= 0.5.0.5)
+ - Flipper-PeerTalk (= 0.0.4)
+ - FlipperKit (= 0.201.0)
+ - FlipperKit/Core (= 0.201.0)
+ - FlipperKit/CppBridge (= 0.201.0)
+ - FlipperKit/FBCxxFollyDynamicConvert (= 0.201.0)
+ - FlipperKit/FBDefines (= 0.201.0)
+ - FlipperKit/FKPortForwarding (= 0.201.0)
+ - FlipperKit/FlipperKitHighlightOverlay (= 0.201.0)
+ - FlipperKit/FlipperKitLayoutPlugin (= 0.201.0)
+ - FlipperKit/FlipperKitLayoutTextSearchable (= 0.201.0)
+ - FlipperKit/FlipperKitNetworkPlugin (= 0.201.0)
+ - FlipperKit/FlipperKitReactPlugin (= 0.201.0)
+ - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.201.0)
+ - FlipperKit/SKIOSNetworkPlugin (= 0.201.0)
+ - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
+ - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
+ - libevent (~> 2.1.12)
+ - OpenSSL-Universal (= 1.1.1100)
+ - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
+ - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
+ - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
+ - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
+ - React (from `../node_modules/react-native/`)
+ - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
+ - React-Codegen (from `build/generated/ios`)
+ - React-Core (from `../node_modules/react-native/`)
+ - React-Core/DevSupport (from `../node_modules/react-native/`)
+ - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
+ - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
+ - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
+ - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`)
+ - React-Fabric (from `../node_modules/react-native/ReactCommon`)
+ - React-FabricImage (from `../node_modules/react-native/ReactCommon`)
+ - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`)
+ - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`)
+ - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`)
+ - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`)
+ - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
+ - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
+ - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`)
+ - React-logger (from `../node_modules/react-native/ReactCommon/logger`)
+ - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`)
+ - react-native-detect-frida (from `../..`)
+ - React-nativeconfig (from `../node_modules/react-native/ReactCommon`)
+ - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
+ - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
+ - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
+ - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
+ - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`)
+ - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
+ - React-RCTFabric (from `../node_modules/react-native/React`)
+ - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
+ - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
+ - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
+ - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
+ - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
+ - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
+ - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`)
+ - React-rncore (from `../node_modules/react-native/ReactCommon`)
+ - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
+ - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
+ - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
+ - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
+ - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
+
+SPEC REPOS:
+ trunk:
+ - CocoaAsyncSocket
+ - Flipper
+ - Flipper-Boost-iOSX
+ - Flipper-DoubleConversion
+ - Flipper-Fmt
+ - Flipper-Folly
+ - Flipper-Glog
+ - Flipper-PeerTalk
+ - FlipperKit
+ - fmt
+ - libevent
+ - OpenSSL-Universal
+ - SocketRocket
+
+EXTERNAL SOURCES:
+ boost:
+ :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec"
+ DoubleConversion:
+ :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
+ FBLazyVector:
+ :path: "../node_modules/react-native/Libraries/FBLazyVector"
+ FBReactNativeSpec:
+ :path: "../node_modules/react-native/React/FBReactNativeSpec"
+ glog:
+ :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
+ hermes-engine:
+ :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
+ :tag: hermes-2024-02-20-RNv0.73.5-18f99ace4213052c5e7cdbcd39ee9766cd5df7e4
+ RCT-Folly:
+ :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
+ RCTRequired:
+ :path: "../node_modules/react-native/Libraries/RCTRequired"
+ RCTTypeSafety:
+ :path: "../node_modules/react-native/Libraries/TypeSafety"
+ React:
+ :path: "../node_modules/react-native/"
+ React-callinvoker:
+ :path: "../node_modules/react-native/ReactCommon/callinvoker"
+ React-Codegen:
+ :path: build/generated/ios
+ React-Core:
+ :path: "../node_modules/react-native/"
+ React-CoreModules:
+ :path: "../node_modules/react-native/React/CoreModules"
+ React-cxxreact:
+ :path: "../node_modules/react-native/ReactCommon/cxxreact"
+ React-debug:
+ :path: "../node_modules/react-native/ReactCommon/react/debug"
+ React-Fabric:
+ :path: "../node_modules/react-native/ReactCommon"
+ React-FabricImage:
+ :path: "../node_modules/react-native/ReactCommon"
+ React-graphics:
+ :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics"
+ React-hermes:
+ :path: "../node_modules/react-native/ReactCommon/hermes"
+ React-ImageManager:
+ :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios"
+ React-jserrorhandler:
+ :path: "../node_modules/react-native/ReactCommon/jserrorhandler"
+ React-jsi:
+ :path: "../node_modules/react-native/ReactCommon/jsi"
+ React-jsiexecutor:
+ :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
+ React-jsinspector:
+ :path: "../node_modules/react-native/ReactCommon/jsinspector-modern"
+ React-logger:
+ :path: "../node_modules/react-native/ReactCommon/logger"
+ React-Mapbuffer:
+ :path: "../node_modules/react-native/ReactCommon"
+ react-native-detect-frida:
+ :path: "../.."
+ React-nativeconfig:
+ :path: "../node_modules/react-native/ReactCommon"
+ React-NativeModulesApple:
+ :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios"
+ React-perflogger:
+ :path: "../node_modules/react-native/ReactCommon/reactperflogger"
+ React-RCTActionSheet:
+ :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
+ React-RCTAnimation:
+ :path: "../node_modules/react-native/Libraries/NativeAnimation"
+ React-RCTAppDelegate:
+ :path: "../node_modules/react-native/Libraries/AppDelegate"
+ React-RCTBlob:
+ :path: "../node_modules/react-native/Libraries/Blob"
+ React-RCTFabric:
+ :path: "../node_modules/react-native/React"
+ React-RCTImage:
+ :path: "../node_modules/react-native/Libraries/Image"
+ React-RCTLinking:
+ :path: "../node_modules/react-native/Libraries/LinkingIOS"
+ React-RCTNetwork:
+ :path: "../node_modules/react-native/Libraries/Network"
+ React-RCTSettings:
+ :path: "../node_modules/react-native/Libraries/Settings"
+ React-RCTText:
+ :path: "../node_modules/react-native/Libraries/Text"
+ React-RCTVibration:
+ :path: "../node_modules/react-native/Libraries/Vibration"
+ React-rendererdebug:
+ :path: "../node_modules/react-native/ReactCommon/react/renderer/debug"
+ React-rncore:
+ :path: "../node_modules/react-native/ReactCommon"
+ React-runtimeexecutor:
+ :path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
+ React-runtimescheduler:
+ :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler"
+ React-utils:
+ :path: "../node_modules/react-native/ReactCommon/react/utils"
+ ReactCommon:
+ :path: "../node_modules/react-native/ReactCommon"
+ Yoga:
+ :path: "../node_modules/react-native/ReactCommon/yoga"
+
+SPEC CHECKSUMS:
+ boost: d3f49c53809116a5d38da093a8aa78bf551aed09
+ CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
+ DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953
+ FBLazyVector: f64d1e2ea739b4d8f7e4740cde18089cd97fe864
+ FBReactNativeSpec: 9f2b8b243131565335437dba74923a8d3015e780
+ Flipper: c7a0093234c4bdd456e363f2f19b2e4b27652d44
+ Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c
+ Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30
+ Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b
+ Flipper-Folly: 584845625005ff068a6ebf41f857f468decd26b3
+ Flipper-Glog: 70c50ce58ddaf67dc35180db05f191692570f446
+ Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
+ FlipperKit: 37525a5d056ef9b93d1578e04bc3ea1de940094f
+ fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
+ glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2
+ hermes-engine: 9cecf9953a681df7556b8cc9c74905de8f3293c0
+ libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
+ OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c
+ RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0
+ RCTRequired: ca1d7414aba0b27efcfa2ccd37637edb1ab77d96
+ RCTTypeSafety: 678e344fb976ff98343ca61dc62e151f3a042292
+ React: e296bcebb489deaad87326067204eb74145934ab
+ React-callinvoker: d0b7015973fa6ccb592bb0363f6bc2164238ab8c
+ React-Codegen: f034a5de6f28e15e8d95d171df17e581d5309268
+ React-Core: 44c936d0ab879e9c32e5381bd7596a677c59c974
+ React-CoreModules: 558228e12cddb9ca00ff7937894cc5104a21be6b
+ React-cxxreact: 1fcf565012c203655b3638f35aa03c13c2ed7e9e
+ React-debug: d444db402065cca460d9c5b072caab802a04f729
+ React-Fabric: 7d11905695e42f8bdaedddcf294959b43b290ab8
+ React-FabricImage: 6e06a512d2fb5f55669c721578736785d915d4f5
+ React-graphics: 5500206f7c9a481456365403c9fcf1638de108b7
+ React-hermes: 783023e43af9d6be4fbaeeb96b5beee00649a5f7
+ React-ImageManager: df193215ff3cf1a8dad297e554c89c632e42436c
+ React-jserrorhandler: a4d0f541c5852cf031db2f82f51de90be55b1334
+ React-jsi: ae102ccb38d2e4d0f512b7074d0c9b4e1851f402
+ React-jsiexecutor: bd12ec75873d3ef0a755c11f878f2c420430f5a9
+ React-jsinspector: 85583ef014ce53d731a98c66a0e24496f7a83066
+ React-logger: 3eb80a977f0d9669468ef641a5e1fabbc50a09ec
+ React-Mapbuffer: 84ea43c6c6232049135b1550b8c60b2faac19fab
+ react-native-detect-frida: de3c20bedad5ad238152fcc7d35e0d196f4b326c
+ React-nativeconfig: b4d4e9901d4cabb57be63053fd2aa6086eb3c85f
+ React-NativeModulesApple: cd26e56d56350e123da0c1e3e4c76cb58a05e1ee
+ React-perflogger: 5f49905de275bac07ac7ea7f575a70611fa988f2
+ React-RCTActionSheet: 37edf35aeb8e4f30e76c82aab61f12d1b75c04ec
+ React-RCTAnimation: a69de7f3daa8462743094f4736c455e844ea63f7
+ React-RCTAppDelegate: 51fb96b554a6acd0cd7818acecd5aa5ca2f3ab9f
+ React-RCTBlob: d91771caebf2d015005d750cd1dc2b433ad07c99
+ React-RCTFabric: c5b9451d1f2b546119b7a0353226a8a26247d4a9
+ React-RCTImage: a0bfe87b6908c7b76bd7d74520f40660bd0ad881
+ React-RCTLinking: 5f10be1647952cceddfa1970fdb374087582fc34
+ React-RCTNetwork: a0bc3dd45a2dc7c879c80cebb6f9707b2c8bbed6
+ React-RCTSettings: 28c202b68afa59afb4067510f2c69c5a530fb9e3
+ React-RCTText: 4119d9e53ca5db9502b916e1b146e99798986d21
+ React-RCTVibration: 55bd7c48487eb9a2562f2bd3fdc833274f5b0636
+ React-rendererdebug: 5fa97ba664806cee4700e95aec42dff1b6f8ea36
+ React-rncore: b0a8e1d14dabb7115c7a5b4ec8b9b74d1727d382
+ React-runtimeexecutor: bb328dbe2865f3a550df0240df8e2d8c3aaa4c57
+ React-runtimescheduler: 9636eee762c699ca7c85751a359101797e4c8b3b
+ React-utils: d16c1d2251c088ad817996621947d0ac8167b46c
+ ReactCommon: 2aa35648354bd4c4665b9a5084a7d37097b89c10
+ SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
+ Yoga: d17d2cc8105eed528474683b42e2ea310e1daf61
+
+PODFILE CHECKSUM: c85401d96f9df53b24db7c1bf8cd6f0ad8bde847
+
+COCOAPODS: 1.14.3
diff --git a/example/src/App.tsx b/example/src/App.tsx
index 29762e3..9f58846 100644
--- a/example/src/App.tsx
+++ b/example/src/App.tsx
@@ -1,6 +1,6 @@
import * as React from 'react';
-import { FlatList, Platform, StyleSheet, Text, View } from 'react-native';
+import { FlatList, Platform, SafeAreaView, StyleSheet, Text, View } from 'react-native';
import { isDeviceRooted } from 'react-native-detect-frida';
export default function App() {
@@ -12,16 +12,17 @@ export default function App() {
};
React.useEffect(() => {
- if (isAndroid()) {
- isDeviceRooted()
- .then((result) => {
- setRooted(result.isRooted ? 'Rooted' : 'Not Rooted');
+ isDeviceRooted()
+ .then((result) => {
+ setRooted(result.isRooted ? 'Rooted' : 'Not Rooted');
+
+ if (isAndroid()) {
setCheckStatus(result.checkStatus);
- })
- .catch((e) => {
- setRooted('Error: ' + e);
- });
- }
+ }
+ })
+ .catch((e) => {
+ setRooted('Error: ' + e);
+ });
}, []);
const _renderItem = (item: CheckStatus) => {
@@ -41,14 +42,15 @@ export default function App() {
};
return (
-
+
+ Welcome to react-native-detect-frida
{rooted}
(item.id + index).toString()}
renderItem={({ item }) => _renderItem(item)}
/>
-
+
);
}
@@ -63,6 +65,11 @@ const styles = StyleSheet.create({
color: 'black',
textAlign: 'center',
},
+ subHeader: {
+ fontSize: 16,
+ color: 'black',
+ textAlign: 'center',
+ },
itemStyle: {
flexDirection: 'row',
alignItems: 'center',
diff --git a/ios/DetectFrida.mm b/ios/DetectFrida.mm
index 83cd35a..f442080 100644
--- a/ios/DetectFrida.mm
+++ b/ios/DetectFrida.mm
@@ -1,4 +1,5 @@
#import "DetectFrida.h"
+#import "JailBrokenHelper.h"
@implementation DetectFrida
RCT_EXPORT_MODULE()
@@ -15,5 +16,51 @@ @implementation DetectFrida
resolve(result);
}
++ (BOOL)requiresMainQueueSetup {
+ return YES;
+}
+
+- (void)closeApp:(double)delay {
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+ exit(0);
+ });
+}
+
+- (BOOL)isJailBroken {
+ if ([JailBrokenHelper isSimulator]) { return NO; }
+ if ([JailBrokenHelper hasCydiaInstalled]) { return YES; }
+ if ([JailBrokenHelper hasUndecimusInstalled]) { return YES; }
+ if ([JailBrokenHelper hasSileoInstalled]) { return YES; }
+ if ([JailBrokenHelper hasZbraInstalled]) { return YES; }
+ if ([JailBrokenHelper isContainsSuspiciousApps]) { return YES; }
+ if ([JailBrokenHelper checkDYLD]) { return YES; }
+ if ([JailBrokenHelper checkSuspiciousObjCClasses]) { return YES; }
+ if ([JailBrokenHelper isSuspiciousSystemPathsExists]) { return YES; }
+ return [JailBrokenHelper canEditSystemFiles];
+}
+
+// RCT_EXPORT_METHOD(isJailBroken:(RCTResponseSenderBlock)callback) {
+// BOOL isJailBroken = [self isJailBroken];
+// callback(@[@(isJailBroken)]);
+// }
+
+RCT_REMAP_METHOD(isJailBroken,
+ isJailBrokenWithResolver:(RCTPromiseResolveBlock)resolve
+ rejecter:(RCTPromiseRejectBlock)reject) {
+ @try {
+ BOOL isJailBroken = [self isJailBroken];
+ resolve(@{@"isRooted": @(isJailBroken)});
+ }
+ @catch (NSException *exception) {
+ NSError *error = [NSError errorWithDomain:@"jailbreakchecker" code:1 userInfo:@{NSLocalizedDescriptionKey: exception.reason ?: @"Failed to determine jailbreak status."}];
+ reject(@"jailbreak_status_error", @"Failed to determine jailbreak status.", error);
+ }
+}
+
+RCT_EXPORT_METHOD(closeAppAfterDelay:(double)delay) {
+ [self closeApp:delay];
+}
+
+
@end
diff --git a/ios/JailBrokenHelper.h b/ios/JailBrokenHelper.h
new file mode 100644
index 0000000..d3560c8
--- /dev/null
+++ b/ios/JailBrokenHelper.h
@@ -0,0 +1,16 @@
+#import
+
+@interface JailBrokenHelper : NSObject
+
++ (BOOL)isSimulator;
++ (BOOL)hasCydiaInstalled;
++ (BOOL)hasUndecimusInstalled;
++ (BOOL)hasSileoInstalled;
++ (BOOL)hasZbraInstalled;
++ (BOOL)isContainsSuspiciousApps;
++ (BOOL)isSuspiciousSystemPathsExists;
++ (BOOL)canEditSystemFiles;
++ (BOOL)checkDYLD;
++ (BOOL)checkSuspiciousObjCClasses;
+
+@end
diff --git a/ios/JailBrokenHelper.m b/ios/JailBrokenHelper.m
new file mode 100644
index 0000000..d244477
--- /dev/null
+++ b/ios/JailBrokenHelper.m
@@ -0,0 +1,190 @@
+#import "JailBrokenHelper.h"
+#import
+#import
+#import
+
+@implementation JailBrokenHelper
+
++ (BOOL)isSimulator {
+ return TARGET_OS_SIMULATOR != 0;
+}
+
++ (BOOL)hasCydiaInstalled {
+ return [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://"]];
+}
+
++ (BOOL)hasUndecimusInstalled {
+ return [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"undecimus://"]];
+}
+
++ (BOOL)hasSileoInstalled {
+ return [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"sileo://"]];
+}
+
++ (BOOL)hasZbraInstalled {
+ return [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"zbra://"]];
+}
+
++ (BOOL)isContainsSuspiciousApps {
+ NSArray *suspiciousAppsPathToCheck = @[
+ @"/Applications/Cydia.app",
+ @"/Applications/blackra1n.app",
+ @"/Applications/FakeCarrier.app",
+ @"/Applications/Icy.app",
+ @"/Applications/IntelliScreen.app",
+ @"/Applications/MxTube.app",
+ @"/Applications/RockApp.app",
+ @"/Applications/SBSettings.app",
+ @"/Applications/WinterBoard.app",
+ @"/Applications/Shadow.app",
+ @"/Applications/IntelliScreen.app",
+ @"/Applications/Sileo.app",
+ @"/Applications/FlyJB.app",
+ @"/Applications/Zebra.app"
+ ];
+
+ for (NSString *path in suspiciousAppsPathToCheck) {
+ if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
+ return YES;
+ }
+ }
+ return NO;
+}
+
++ (BOOL)isSuspiciousSystemPathsExists {
+ NSArray *suspiciousSystemPathsToCheck = @[
+ @"/Library/MobileSubstrate/MobileSubstrate.dylib",
+ @"/Library/MobileSubstrate/DynamicLibraries/LiveClock.plist",
+ @"/Library/MobileSubstrate/DynamicLibraries/Veency.plist",
+ @"/private/var/lib/apt",
+ @"/private/var/lib/apt/",
+ @"/private/var/lib/cydia",
+ @"/private/var/mobile/Library/SBSettings/Themes",
+ @"/private/var/stash",
+ @"/private/var/tmp/cydia.log",
+ @"/System/Library/LaunchDaemons/com.ikey.bbot.plist",
+ @"/System/Library/LaunchDaemons/com.saurik.Cydia.Startup.plist",
+ @"/usr/bin/sshd",
+ @"/usr/libexec/sftp-server",
+ @"/usr/sbin/sshd",
+ @"/etc/apt",
+ @"/bin/bash",
+ @"/etc/apt/sources.list.d/electra.list",
+ @"/usr/lib/libcycript.dylib",
+ @"/usr/bin/cycript",
+ @"/usr/sbin/frida-server",
+ @"/etc/sshd_config",
+ @"/Library/Shadow/Rulesets",
+ @"/usr/bin/ssh",
+ @"/var/mobile/Library/Preferences/ABPattern",
+ @"/usr/lib/ABDYLD.dylib",
+ @"/usr/lib/ABSubLoader.dylib",
+ @"/etc/apt/sources.list.d/sileo.sources",
+ @"/.bootstrapped_electra",
+ @"/usr/lib/libjailbreak.dylib",
+ @"/jb/lzma",
+ @"/.cydia_no_stash",
+ @"/.installed_unc0ver",
+ @"/jb/offsets.plist",
+ @"/usr/share/jailbreak/injectme.plist",
+ @"/etc/apt/undecimus/undecimus.list",
+ @"/var/lib/dpkg/info/mobilesubstrate.md5sums",
+ @"/jb/jailbreakd.plist",
+ @"/jb/amfid_payload.dylib",
+ @"/jb/libjailbreak.dylib",
+ @"/usr/libexec/cydia/firmware.sh",
+ @"/var/lib/cydia",
+ @"/private/var/Users/",
+ @"/var/log/apt",
+ @"/private/var/cache/apt/",
+ @"/private/var/log/syslog",
+ @"/Library/MobileSubstrate/CydiaSubstrate.dylib",
+ @"/var/binpack",
+ @"/Library/PreferenceBundles/LibertyPref.bundle",
+ @"/Library/PreferenceBundles/ShadowPreferences.bundle",
+ @"/Library/PreferenceBundles/ABypassPrefs.bundle",
+ @"/Library/PreferenceBundles/FlyJBPrefs.bundle",
+ @"/Library/PreferenceBundles/Cephei.bundle",
+ @"/Library/PreferenceBundles/SubstitutePrefs.bundle",
+ @"/Library/PreferenceBundles/libhbangprefs.bundle",
+ @"/usr/lib/libhooker.dylib",
+ @"/usr/lib/libsubstitute.dylib",
+ @"/usr/lib/substrate",
+ @"/usr/lib/TweakInject",
+ @"/var/binpack/Applications/loader.app",
+ @"/Library/BawAppie/ABypass",
+ @"/Library/MobileSubstrate/DynamicLibraries/SSLKillSwitch2.plist",
+ @"/Library/MobileSubstrate/DynamicLibraries/PreferenceLoader.plist",
+ @"/Library/MobileSubstrate/DynamicLibraries/PreferenceLoader.dylib",
+ @"/Library/MobileSubstrate/DynamicLibraries",
+ @"/var/mobile/Library/Preferences/me.jjolano.shadow.plist"
+ ];
+
+ for (NSString *path in suspiciousSystemPathsToCheck) {
+ if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
+ return YES;
+ }
+ }
+ return NO;
+}
+
++ (BOOL)canEditSystemFiles {
+ NSString *jailBreakText = @"Developer Insider";
+ NSError *error = nil;
+ BOOL success = [jailBreakText writeToFile:jailBreakText atomically:YES encoding:NSUTF8StringEncoding error:&error];
+ return success;
+}
+
++ (BOOL)checkDYLD {
+ NSArray *suspiciousLibraries = @[
+ @"SubstrateLoader.dylib",
+ @"SSLKillSwitch2.dylib",
+ @"SSLKillSwitch.dylib",
+ @"MobileSubstrate.dylib",
+ @"TweakInject.dylib",
+ @"CydiaSubstrate",
+ @"cynject",
+ @"CustomWidgetIcons",
+ @"PreferenceLoader",
+ @"RocketBootstrap",
+ @"WeeLoader",
+ @"/.file", // HideJB (2.1.1) changes full paths of the suspicious libraries to "/.file"
+ @"libhooker",
+ @"SubstrateInserter",
+ @"SubstrateBootstrap",
+ @"ABypass",
+ @"FlyJB",
+ @"Substitute",
+ @"Cephei",
+ @"Electra",
+ @"AppSyncUnified-FrontBoard.dylib",
+ @"Shadow",
+ @"FridaGadget",
+ @"frida",
+ @"libcycript"
+ ];
+
+ uint32_t count = _dyld_image_count();
+ for (uint32_t i = 0; i < count; i++) {
+ const char *imageName = _dyld_get_image_name(i);
+ NSString *imageNameStr = [NSString stringWithUTF8String:imageName];
+
+ for (NSString *library in suspiciousLibraries) {
+ if ([imageNameStr localizedCaseInsensitiveContainsString:library]) {
+ return YES;
+ }
+ }
+ }
+ return NO;
+}
+
++ (BOOL)checkSuspiciousObjCClasses {
+ Class shadowRulesetClass = objc_getClass("ShadowRuleset");
+ SEL selector = NSSelectorFromString(@"internalDictionary");
+ if (class_getInstanceMethod(shadowRulesetClass, selector) != nil) {
+ return YES;
+ }
+ return NO;
+}
+
+@end
diff --git a/src/index.tsx b/src/index.tsx
index 8c0b83d..e6c9687 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -17,6 +17,14 @@ const DetectFrida = NativeModules.DetectFrida
}
);
+const isAndroid = () => {
+ return Platform.OS === 'android';
+};
+
export function isDeviceRooted(): Promise {
- return DetectFrida.detectRoot();
+ if (isAndroid()) {
+ return DetectFrida.detectRoot();
+ } else {
+ return DetectFrida.isJailBroken()
+ }
}