Bypass Factory Reset Protection on Samsung Galaxy devices via ADB and AT serial commands. Includes a PyQt5 GUI and a shell script.
- Python 3.10+
- Dependencies from
requirements.txt
pip install -r requirements.txtPyQt5
pyserial
pyusb
Plug your Samsung device in over USB and launch:
python frp.py
Four tabs — USB mode switcher, ADB/AT commands, FRP bypass, and GSM SMS — all running in background threads with a live terminal console.
git clone https://github.com/sudo-self/samsung-frp.git
cd samsung-frp
chmod +x unlock.sh
./unlock.shexecute_adb_command "settings put global setup_wizard_has_run 1"
execute_adb_command "settings put secure user_setup_complete 1"
execute_adb_command "content insert --uri content://settings/secure --bind name:s:DEVICE_PROVISIONED --bind value:i:1"
execute_adb_command "content insert --uri content://settings/secure --bind name:s:user_setup_complete --bind value:i:1"
execute_adb_command "content insert --uri content://settings/secure --bind name:s:INSTALL_NON_MARKET_APPS --bind value:i:1"
execute_adb_command "am start -c android.intent.category.HOME -a android.intent.action.MAIN"Wait 5 seconds, then:
execute_adb_command "am start -n com.android.settings/com.android.settings.Settings"Wait 5 seconds — go to Backup and reset → Factory data reset — then reboot.
pyinstaller --onedir --windowed --name "SamsungFRPTool" \
--hidden-import usb.backend.libusb1 \
--hidden-import usb.backend.libusb0 \
--hidden-import serial.tools.list_ports \
--add-binary "/opt/homebrew/lib/libusb-1.0.dylib:." \
--strip \
--exclude-module matplotlib \
--exclude-module numpy \
--exclude-module pandas \
--exclude-module PIL \
--exclude-module tkinter \
--exclude-module unittest \
--noconfirm \
frp.pyOutput: dist/SamsungFRPTool.app