goodbye reactivation lock!
Find a file
2025-08-08 22:59:26 -04:00
.gitignore add the files 2025-08-08 17:21:34 -04:00
main.c fix readme, logic error, and show command results 2025-08-08 22:51:35 -04:00
qseecom.h add the files 2025-08-08 17:21:34 -04:00
README.txt cant even get the readme right 2025-08-08 22:59:26 -04:00
terrier.h add the files 2025-08-08 17:21:34 -04:00

A quick and dirty program that bypasses Reactivation Lock on select Samsung devices.

I wrote this code specifically to disable Reactivation Lock on a phone (Samsung Galaxy Core Prime, Verizon model) I have quickly. It specifically targets trustzone/RPMB reactivation lock and stock Android 5.1.1 for the sake of working on that specific phone.
This program depends on the probably proprietary `/vendor/lib/libQSEEComAPI.so` library included in the stock rom, similarly to Samsung's implementation of reactivation lock.
I plan on writing a library, and commandline wrapper, for manipulating various Samsung security features someday, and I plan to support other Reactivation Lock storage methods (example: partition-based) and write my own code for interfacing with `/dev/qseecom` rather than using the vendor library.

Usage instructions:
Run the program with no arguments to get the current reactivation lock string (example: {"serverUrl":"www.ospserver.net","userID":"<redacted>","accountEmail":"<redacted>@gmail.com","deviceID":"MEID:<redacted>"}), or run it with the argument `bypass` to disable reactivation lock.

Compilation instructions:
0. Have your target phone (with USB debugging on), `adb`, and a copy of the Android NDK.
1. Run `adb pull /vendor/lib/libQSEEComAPI.so` with the target or other suitable phone plugged in.
2. Find a suitable compiler in the NDK, I used android-ndk-r26d/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang .
3. Run `<compiler> -c main.c` to create the `main.o` object file.
4. Run `<compiler> main.o libQSEEComAPI.so` to create the `a.out` executable.
5. Optionally, grab a copy of termux-elf-cleaner from https://github.com/termux/termux-elf-cleaner/ and run it on the generated `a.out`. This will prevent some linker warnings from appearing.
6. Use the new a.out binary as you wish.
(I could probably create a makefile but I'm too lazy)