alisakkaf/Smart-Screen-Unlocker-Recovery
GitHub: alisakkaf/Smart-Screen-Unlocker-Recovery
一款通过ADB注入内核级触摸手势并调用系统API来绕过Android锁屏的取证与设备恢复工具,专为屏幕损坏且被锁定的设备设计。
Stars: 25 | Forks: 7

# 🔓 Smart Screen Unlocker Recovery v1.1
[](https://python.org)
[]()
[](https://opensource.org/licenses/MIT)
[]()
**Smart Screen Unlocker Recovery** 是一个先进的、自动化驱动的取证与无障碍框架。它专为帮助移动设备维修技术人员、取证专家以及普通用户恢复对 Android 设备的访问权限而设计,适用于具有**完全损坏的显示屏、失灵的触摸数字转换器或无法访问的屏幕**,且被**图案、PIN 码或密码**凭证锁定的设备。
通过注入内核级别的原始触摸手势,或经由授权的 ADB (Android Debug Bridge) 接口执行自动化安全凭证操作,该工具充当合成硬件数字转换器或安全绕过客户端,允许您绕过锁屏并恢复您的数据。
## 🔥 无与伦比的功能与特性
* **🔑 多凭证支持(图案、PIN 码、密码):** 全面扩展的 GUI 界面,提供专用的恢复选项,支持图案(交互式绘制)、数字 PIN 码和字母数字密码。
* **🌐 Unicode 与布局安全:** 限制对 Unicode(非 ASCII)密码(如阿拉伯语或中文)的模拟屏幕输入,以防止由于布局不匹配导致的击键丢失错误,并干净利落地提供操作系统级别的清除(`Clear Lock`)。
* **🛡️ 多状态感知(AFU/BFU):** 动态检测设备是处于*首次解锁前 (BFU)* 还是 *首次解锁后 (AFU)* 状态,并相应地调整垂直矩阵几何结构。
* **📐 智能 XML 容器绕过:** 智能忽略由现代安全补丁(例如三星 OneUI 8+)部署的虚假、全屏透明容器,以定位真实的锁屏网格。
* **🎨 交互式可视化 GUI:** 具有时尚的、由终端生成的图形画布,允许技术人员使用鼠标直观地绘制图案,模拟物理设备交互。
* **⏱️ 防止自动超时:** 在操作期间自动延长设备的 `screen_off_timeout` 以防止屏幕休眠,并在注入后无缝恢复原始设置。
* **💻 动态 CLI 纵向缩放 (745x900):** 在启动时自动调整终端窗口大小,并提供备选方案梯队(`93x56` -> `93x48` -> `85x45`),以安全地适应各种屏幕分辨率和 DPI 缩放,且不会出现 shell 错误。
* **🔁 持久主循环:** 脚本在每次操作后保持活动状态,提示技术人员返回主菜单而无需重新启动程序。
* **✅ 深度内核验证:** 询问 Android 操作系统(`dumpsys window` 和 `dumpsys keyguard`),通过数学计算验证解锁是否成功,而不依赖视觉屏幕反馈。
## 📸 界面与执行预览
### 🆕 v1.1 PIN 码与密码界面
| 📱 选择恢复方法 | 🔢 PIN 码与密码输入 | ⚙️ 动态操作选择 |
| :---: | :---: | :---: |
|

|

|

|
### 🌀 经典图案恢复界面
| 🎛️ 实时交互式绘制器 | 📊 深度遥测与执行日志 |
| :---: | :---: |
|

|

|
|

|

|
## 🛠️ PIN 码与密码恢复机制(揭秘)
该工具具有高度安全的自动化验证和绕过框架,用于 PIN 码和密码恢复:
* **安全操作系统验证**:脚本不是盲目地模拟点击,而是使用设备的安全锁设置 API:
- 现代命令:`adb shell cmd lock_settings verify --old
`
- 旧版命令:`adb shell locksettings verify --old `
这可以以 100% 的数学确定性判断输入的凭证是否正确。
* **精准注入器 (`type_password_safe`)**:纯字母数字字符串将作为单个块瞬间输入。特殊符号和空格将逐个字符输入,并带有自动的 `%s` 空格映射和 shell 参数转义。
* **操作选择菜单**:验证成功后,技术人员可以通过自定义的 Tkinter GUI 选择所需的操作:
- **解锁手机(保留密码)**:使用非切换式唤醒键(`KEYCODE_WAKEUP` / keyevent 224)唤醒屏幕,关闭锁屏滑动障碍,输入正确的已验证密码,然后按回车键。
- **完全删除密码(清除锁)**:发出 `cmd lock_settings clear --old ` 指令,永久移除锁屏安全数据库(将锁设置为无/滑动),方便快速备份。
- **无操作**:仅在终端日志中输出正确的已验证锁屏代码并退出。
* **Unicode 与语言安全过滤器**:ADB 键盘模拟根据活动的设备虚拟键盘布局(例如 Gboard/三星键盘)映射按键。非 ASCII 凭证(例如阿拉伯语 `علي1` 或中文 `你好`)通常无法正确输入,因为活动布局对按键输入的映射方式不同(例如,Gboard 阿拉伯语会将按键注入转换为阿拉伯语-印度数字 `١` 而不是 ASCII `1`)。
- 为了防止输入阈值锁定并确保绝对安全,脚本会自动解析凭证布局。如果它包含非 ASCII 字符,**解锁手机(保留密码)**选项将完全从 GUI 中隐藏。仅允许用户选择**完全删除密码(清除锁)**(在程序化系统数据库级别安全运行)或**无操作**。
## ⚙️ 6 引擎多重攻击策略
为了应对 Android OEM、DPI 缩放和自定义 UI 之间的碎片化问题,该工具采用了数学引擎的顺序级联。如果其中一个失败,脚本会动态调整其几何结构并触发下一个!
| 引擎 | 策略名称 | 描述 | 目标设备 |
| :---: | :--- | :--- | :--- |
| **1** | `Dynamic XML Hierarchy` | 尝试直接从 UI Automator 树中提取精确的像素边界。 | 通用(如果未被阻止) |
| **2** | `Golden Ratio Base Matrix`| 使用经验性的 OEM 宽高比来计算数学上完美的正方形或矩形网格。 | 三星与通用 AOSP |
| **3** | `DPI Shifted Matrix` | 补偿更改了显示缩放(小/大 UI 尺寸)的用户。 | 通用 |
| **4** | `Custom High Matrix` | 针对偏移的通知栏布局,常见于 Android 13+ 环境。 | 三星与定制 ROM |
| **5** | `Custom Extreme Matrix` | 基于极端情况的硬件遥测数据构建,适用于独特的屏幕分辨率。 | 高宽长比 (21:9) |
| **6** | `Cross-Over Failsafe` | 在 AFU 状态下测试 BFU 矩阵(反之亦然),以防 Knox 或 SystemUI 不同步。 | 通用 |
## 📱 支持与已测试设备
该框架动态计算屏幕矩阵,使其在理论上兼容**任何 Android 设备**。然而,它已经过针对以下架构的严格测试和优化:
| OEM / 品牌 | 已测试型号(示例) | UI 环境 | 成功率 |
| :--- | :--- | :--- | :---: |
| **Samsung** | Galaxy S24 (SM-S921U), Galaxy S23 (SM-S911U) | OneUI 5.0 - 8.5 | 🟢 100% |
| **TCL** | T609DL, 30 SE, 40 XL | TCL UI / AOSP 12-13 | 🟢 100% |
| **Xiaomi / POCO**| Redmi Note 12, POCO X5 | MIUI 14 / HyperOS | 🟢 高 |
| **Motorola** | Moto G Stylus, Edge 系列 | MyUX / AOSP | 🟢 高 |
| **Google** | Pixel 6, Pixel 7, Pixel 8 | Pixel UI | 🟢 高 |
## 🚀 安装与使用
### 📦 选项 1:独立 Windows 可执行文件(推荐)
您无需安装 Python。只需从 [Releases](https://github.com/alisakkaf/Smart-Screen-Unlocker-Recovery/releases) 标签页下载独立的 `.exe` 文件。
1. 确保在目标 Android 设备上启用了 **USB 调试**。
2. 将设备连接到您的 PC 并授权连接。
3. 运行 `Smart_Screen_Unlocker.exe`。
4. 在交互式 GUI 上绘制您的图案,并观察终端自动执行注入!
### 💻 选项 2:从源码运行
```
# Clone 仓库
git clone [https://github.com/alisakkaf/Smart-Screen-Unlocker-Recovery.git](https://github.com/alisakkaf/Smart-Screen-Unlocker-Recovery.git)
cd Smart-Screen-Unlocker-Recovery
# 安装 build 依赖(可选,用于编译)
pip install -r requirements.txt
# 执行脚本
python main.py
```
## ✅ 解锁成功后:通过 Scrcpy 完全控制
一旦 **Smart Screen Unlocker Recovery** 成功注入内核手势并绕过安全的 BFU/AFU 锁屏状态,您的 Android 设备即被完全解锁,并响应外部显示实用程序。
您可以立即转而使用 [scrcpy](https://github.com/genymobile/scrcpy) 来实现全低延迟屏幕镜像、音频转发和外围设备控制,以安全地备份您的系统数据。
### 🚀 快速执行指南:
1. 保持您的设备通过授权的 USB/无线 ADB 接口连接。
2. 将最新版本的 `scrcpy` 下载并解压到您的主机上。
3. 根据您的恢复工作流执行以下终端命令:
```
# 在物理设备息屏状态下的标准高性能镜像
scrcpy --always-on-top --turn-screen-off --stay-awake
# 针对 backup 操作优化的高级 forensic 流
scrcpy --max-fps=30 --video-bit-rate=4M --audio-bit-rate=128k --window-title="Recovered Device Screen"
---
## 🛠️ 编译为 .exe(For Developers)
To bundle the utility into a portable runtime executable with your custom icon (`6437133.png`), execute this command in your PowerShell/CMD:
```powershell
python -c "from PIL import Image; img = Image.open('6437133.png'); img.save('icon.ico', format='ICO')" ; pyinstaller --noconfirm --onefile --console --icon="icon.ico" --name="Smart_Screen_Unlocker" --clean main.py
```
标签:ADB调试, Python, 安卓, 屏幕解锁, 数字取证, 无后门, 漏洞挖掘, 自动化脚本, 访问恢复, 逆向工具