goodbye reactivation lock!
.gitignore | ||
main.c | ||
qseecom.h | ||
README.txt | ||
terrier.h |
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)