You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,15 +10,18 @@ To understand how the library blocks screen capture, inspect the compiled Mach-O
10
10
11
11
By looking at related iOS system APIs, we can identify three defense layers used by the library:
12
12
13
-
1.**The Visual Layer (`UITextField`):** The library uses the common `setSecureTextEntry:` trick to hide the app UI during screenshots or screen recording.
13
+
### 1. Visual Layer (`UITextField`)
14
+
The library uses the common `setSecureTextEntry:` trick to hide the app UI during screenshots or screen recording.
14
15
15
16

16
17
17
-
2.**The Active Check Layer (`UIScreen`):** The `screenIsRecording()` function checks `[UIScreen mainScreen].isCaptured` directly to detect whether the screen is being recorded.
18
+
### 2. Active Check Layer (`UIScreen`)
19
+
The `screenIsRecording()` function checks `[UIScreen mainScreen].isCaptured` directly to detect whether the screen is being recorded.
18
20
19
21

20
22
21
-
3.**The Event Detection Layer (`NSNotificationCenter`):** The `screenshotObserver(using:)` and `screenRecordObserver(using:)` functions show that the library listens for screenshot and screen recording notifications through `NSNotificationCenter` and forwards them to the Flutter layer.
The `screenshotObserver(using:)` and `screenRecordObserver(using:)` functions show that the library listens for screenshot and screen recording notifications through `NSNotificationCenter` and forwards them to the Flutter layer.
0 commit comments