{"id":13401,"date":"2026-10-08T12:45:53","date_gmt":"2026-10-08T12:45:53","guid":{"rendered":"https:\/\/www.hovatek.com\/blog\/?p=13401"},"modified":"2026-10-08T12:45:53","modified_gmt":"2026-10-08T12:45:53","slug":"how-i-tried-to-root-samsung-galaxy-a12-sm-a125f-u5-for-my-android-anonymity-experiment","status":"publish","type":"post","link":"https:\/\/www.hovatek.com\/blog\/how-i-tried-to-root-samsung-galaxy-a12-sm-a125f-u5-for-my-android-anonymity-experiment\/","title":{"rendered":"How I Tried to Root Samsung Galaxy A12 SM-A125F U5 for My Android Anonymity Experiment"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\"><strong>Samsung Galaxy A12 Anonymity Experiment \u2014 Part 1: Getting Root Access<\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This post is the first part of a larger experiment I have been planning with my Samsung Galaxy A12: <strong>how anonymous can I make an Android phone when I have full control over the device?<\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">My eventual goal is to investigate how much of the phone&#8217;s observable identity I can change or reduce. That includes things such as device properties, Android identifiers, location, network identity, browser and application fingerprinting, Google and Samsung services, permissions, telemetry and other signals that applications or websites may use to recognize a device.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Before attempting any of that, however, I decided that I wanted root access.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">ADB already gives me a lot of control over an Android phone, but some of the experiments I have in mind will require access beyond what normal ADB and Android settings provide. Root access would give me a much better laboratory for inspecting and modifying parts of Android that are normally protected.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">So this article became <strong>Part 1 of the anonymity experiment: rooting the Samsung Galaxy A12.<\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The phone I used was a Samsung Galaxy A12 <code>SM-A125F<\/code> running Android 12 on bootloader\/binary revision 5. I expected the normal Samsung Magisk procedure to be fairly straightforward: download the matching firmware, patch the AP file, flash it with Odin and verify root.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">That is not what happened.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The experiment eventually involved a successful Magisk AP patch, an Odin flash that returned <code>PASS<\/code> but left the phone bootlooping, a complete stock-firmware recovery, an exact-build third-party boot root package that Odin rejected, and a TWRP package whose recovery image was rejected as well.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Instead of hiding those failed attempts, I decided to document them because they revealed some important differences in how this Galaxy A12 handles modified firmware.<\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><strong>About this series:<\/strong> The aim of this project is not to claim that an Android phone can be made perfectly anonymous. I want to test, one layer at a time, which identifiers and signals I can actually control and which ones remain visible. Every conclusion in the series will be based on what I can reproduce on this Galaxy A12.<\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><strong>Important:<\/strong> Rooting and flashing Samsung firmware can wipe the phone, trip Knox permanently, cause bootloops and require a complete stock-firmware restore. I am using this Galaxy A12 as a lab device and backed up anything I wanted to keep before continuing.<\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">1. Identifying the Exact Galaxy A12 Firmware<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I started by confirming the exact model, Android build and bootloader version over ADB.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>adb devices\r\nadb shell getprop ro.product.model\r\nadb shell getprop ro.build.display.id\r\nadb shell getprop ro.bootloader\r\nadb shell getprop ro.boot.flash.locked\r\nadb shell getprop ro.boot.verifiedbootstate<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The phone reported:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Model: SM-A125F\r\nBuild: SP1A.210812.016.A125FXXS5CXE3\r\nBootloader: A125FXXS5CXE3\r\nro.boot.flash.locked: 0\r\nro.boot.verifiedbootstate: orange<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The <code>5<\/code> in <code>A125FXXS5CXE3<\/code> was important because this phone was on Samsung binary \/ bootloader revision 5.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/adb-galaxy-a12-annotated.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/adb-galaxy-a12-annotated.png\" alt=\"ADB commands showing Samsung Galaxy A12 SM-A125F build A125FXXS5CXE3 with flash locked 0 and orange verified boot state\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">2. Confirming the CSC and Region<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Before downloading firmware, I checked the Samsung CSC information so that I could match the phone as closely as possible.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>adb shell getprop ro.boot.sales_code\r\nadb shell getprop ro.csc.sales_code\r\nadb shell getprop ro.csc.country_code\r\nadb shell getprop ro.csc.countryiso_code\r\nadb shell getprop ro.build.display.id\r\nadb shell getprop ro.bootloader<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The results were:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ro.boot.sales_code: SEB\r\nro.csc.sales_code: SEB\r\nro.csc.country_code: BALTIC\r\nro.csc.countryiso_code: LV\r\nBuild: SP1A.210812.016.A125FXXS5CXE3\r\nBootloader: A125FXXS5CXE3<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">That gave me a clear firmware target: <code>SM-A125F<\/code>, CSC <code>SEB<\/code>, Android 12, binary 5 and build <code>A125FXXS5CXE3<\/code>.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/adb-galaxy-a12-csc-annotated.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/adb-galaxy-a12-csc-annotated.png\" alt=\"ADB output showing Samsung Galaxy A12 CSC SEB, BALTIC region, LV country ISO and A125FXXS5CXE3 firmware build\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">3. Confirming That the Bootloader Was Already Unlocked<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The ADB results strongly suggested that the bootloader was already unlocked, but later checks made this even clearer.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>adb shell getprop ro.boot.flash.locked\r\nadb shell getprop ro.boot.verifiedbootstate\r\nadb shell getprop ro.boot.vbmeta.device_state<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The phone returned:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>0\r\norange\r\nunlocked<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Download Mode later gave the strongest confirmation with:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>OEM LOCK: OFF (U)<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">So I did not need to repeat the Samsung bootloader-unlock procedure.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">4. Downloading the Exact Stock Firmware<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I downloaded the exact matching <code>SM-A125F \/ SEB \/ A125FXXS5CXE3<\/code> firmware package.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The firmware set contained the normal Samsung Odin files:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>AP_A125FXXS5CXE3_....tar.md5\r\nBL_A125FXXS5CXE3_....tar.md5\r\nCP_A125FXXS5CXE1_....tar.md5\r\nCSC_OXM_A125FOXM5CXE3_....tar.md5\r\nHOME_CSC_OXM_A125FOXM5CXE3_....tar.md5<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The AP file was by far the largest of the firmware files and was the file I would later patch with Magisk.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/samfw-firmware-table-cropped.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/samfw-firmware-table-cropped.png\" alt=\"Samsung Galaxy A12 A125FXXS5CXE3 firmware child files showing AP, BL, CP, CSC and HOME CSC downloads\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">5. Extracting AP, BL, CP and CSC<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">After the firmware download completed, I extracted the archive to a folder on the Windows desktop.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I kept the original AP, BL, CP and CSC files untouched because I knew I might need them later if the root attempt failed.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/winrar-firmware-private-cropped.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/winrar-firmware-private-cropped.png\" alt=\"Samsung Galaxy A12 firmware archive in WinRAR showing AP, BL, CP, CSC and HOME_CSC files before Magisk patching\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">6. Installing Magisk and Checking Ramdisk Support<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I installed Magisk 30.7 on the Galaxy A12 and opened its home screen before patching anything.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Magisk reported:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Installed: N\/A\r\nZygisk: No\r\nRamdisk: Yes\r\nApp: 30.7 (30700)<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The important value was <code>Ramdisk: Yes<\/code>. I therefore did not enable Magisk&#8217;s Recovery Mode option when patching the AP firmware.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/magisk-galaxy-a12-home-annotated.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/magisk-galaxy-a12-home-annotated.png\" alt=\"Magisk 30.7 on Samsung Galaxy A12 showing Installed N\/A, Zygisk No and Ramdisk Yes before patching AP firmware\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">7. Copying the Stock AP Firmware to the Phone With ADB<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Rather than transferring the multi-gigabyte AP file through MTP, I used ADB.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I first confirmed the AP filename on the PC:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>dir \/b \"C:\\Users\\Enlightenment\\Desktop\\A125F-root\\AP_*.tar.md5\"<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Then I pushed it to the phone&#8217;s Download folder:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>for %F in (\"C:\\Users\\Enlightenment\\Desktop\\A125F-root\\AP_*.tar.md5\") do adb push \"%~fF\" \/sdcard\/Download\/<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">ADB reported a successful transfer of <code>4765757646<\/code> bytes.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I verified the file on the phone:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>adb shell ls -lh \/sdcard\/Download\/AP*<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The AP appeared as approximately <code>4.4G<\/code>.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Before patching, I also checked free internal storage:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>adb shell df -h \/data<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The phone had about <code>15G<\/code> available, giving Magisk enough room to create another large firmware archive.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/adb-ap-transfer-annotated.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/adb-ap-transfer-annotated.png\" alt=\"ADB successfully pushing the 4.4 GB Samsung Galaxy A12 AP firmware file to Downloads and confirming 15 GB free storage\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">8. Patching the Samsung AP File With Magisk<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Inside Magisk, I selected:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Install\r\nSelect and Patch a File\r\nDownloads\r\nAP_A125FXXS5CXE3_....tar.md5\r\nLET'S GO<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Magisk unpacked the AP archive, processed the images inside it and repacked the result.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The operation completed with:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>All done!<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Magisk created:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\/storage\/emulated\/0\/Download\/magisk_patched-30700_7AO2R.tar<\/code><\/pre>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/galaxy-a12-magisk-six-step-tutorial.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/galaxy-a12-magisk-six-step-tutorial.png\" alt=\"Step by step Magisk process selecting the Samsung AP firmware and creating a Magisk patched AP on Galaxy A12\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">9. Pulling the Magisk-Patched AP Back to the PC<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I verified the patched file first:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>adb shell ls -lh \/sdcard\/Download\/magisk_patched*<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The result showed:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>magisk_patched-30700_7AO2R.tar\r\n3.5G<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">My first pull attempt failed because the destination folder did not exist, so I created the folder and tried again:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>if not exist \"C:\\Users\\Enlightenment\\Desktop\\A125F-root\" mkdir \"C:\\Users\\Enlightenment\\Desktop\\A125F-root\"\r\n\r\nadb pull \"\/sdcard\/Download\/magisk_patched-30700_7AO2R.tar\" \"C:\\Users\\Enlightenment\\Desktop\\A125F-root\\magisk_patched-30700_7AO2R.tar\"<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The successful transfer reported:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>1 file pulled, 0 skipped\r\n3782518272 bytes<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A final <code>dir<\/code> check confirmed the patched AP on the PC at <code>3,782,518,272<\/code> bytes.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/adb-patched-ap-pull-annotated.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/adb-patched-ap-pull-annotated.png\" alt=\"ADB pulling Magisk patched Samsung Galaxy A12 AP tar back to Windows and verifying the 3.78 GB file\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">10. Preparing Odin With the Patched AP<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">For the first root attempt, I loaded Odin with the matching stock files and the Magisk-patched AP:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>BL  - original BL_A125FXXS5CXE3_....tar.md5\r\nAP  - magisk_patched-30700_7AO2R.tar\r\nCP  - original CP_A125FXXS5CXE1_....tar.md5\r\nCSC - original CSC_OXM_A125FOXM5CXE3_....tar.md5<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I used the normal <code>CSC<\/code> rather than <code>HOME_CSC<\/code> for this initial Magisk installation.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Odin detected the phone on a COM port and accepted all four files.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/odin-galaxy-a12-ready-to-flash-annotated.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/odin-galaxy-a12-ready-to-flash-annotated.png\" alt=\"Odin detecting Samsung Galaxy A12 with original BL CP CSC and Magisk patched AP loaded before flashing\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/download-mode-ready.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/download-mode-ready.png\" alt=\"Samsung Galaxy A12 displaying the Download Mode screen\" \/><\/a>\r\n<figcaption class=\"wp-element-caption\">The Galaxy A12 in Samsung Download Mode.<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">11. Odin Successfully Flashed the Magisk-Patched AP<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I started the Odin flash and watched it write the firmware partitions.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The Odin log showed entries including:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Firmware update start..\r\nNAND Write Start!!\r\nboot.img\r\nvbmeta.img\r\nrecovery.img\r\ndtbo.img\r\nsuper.img<\/code><\/pre>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/odin-galaxy-a12-flash-in-progress-annotated.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/odin-galaxy-a12-flash-in-progress-annotated.png\" alt=\"Odin flashing Samsung Galaxy A12 with Magisk patched AP and writing boot vbmeta recovery dtbo and super partitions\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/phone-firmware-transfer-progress.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/phone-firmware-transfer-progress.png\" alt=\"Samsung Galaxy A12 Download Mode displaying a firmware transfer progress bar\" \/><\/a>\r\n<figcaption class=\"wp-element-caption\">The phone-side Download Mode progress indicator during firmware transfer.<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Odin eventually displayed a large green:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>PASS!<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The final log also showed:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>RES OK !!\r\nRemoved!!\r\nAll threads completed. (succeed 1 \/ failed 0)<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">At this point, the flashing stage itself looked completely successful.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/odin-galaxy-a12-pass-annotated.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/odin-galaxy-a12-pass-annotated.png\" alt=\"Odin showing PASS, RES OK and succeed 1 failed 0 after flashing Magisk patched AP on Samsung Galaxy A12\" \/><\/a>\r\n<figcaption class=\"wp-element-caption\">Odin reported PASS after 03:29, but the phone subsequently bootlooped. This result confirmed the flash completed, not successful root access.<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">12. The Phone Bootlooped After Odin PASS<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The successful Odin result did not mean the phone could actually boot the modified firmware.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">After the flash, the Galaxy A12 entered a bootloop instead of completing the Android first boot.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I initially tried to enter Recovery so that I could perform the expected factory reset, but Recovery was not opening reliably from the bootloop.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This was the first major lesson from the experiment: <strong>Odin PASS only proved that Odin and the phone accepted the flash operation. It did not prove that Android would successfully boot afterward.<\/strong><\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">13. What Download Mode Revealed After the Bootloop<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I returned to Samsung Download Mode and finally got a screen containing detailed device information.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The important lines included:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>PRODUCT NAME: SM-A125F\r\nCURRENT BINARY: Custom\r\nFRP LOCK: OFF\r\nOEM LOCK: OFF (U)\r\nWARRANTY VOID: 0x1\r\nRP SWREV: B5 ...\r\nSECURE DOWNLOAD: ENABLE<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This confirmed several things at once.<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>The bootloader was genuinely unlocked: <code>OEM LOCK: OFF (U)<\/code>.<\/li>\r\n<li>The phone recognized that a custom binary had been flashed: <code>CURRENT BINARY: Custom<\/code>.<\/li>\r\n<li>Knox had been tripped: <code>WARRANTY VOID: 0x1<\/code>.<\/li>\r\n<li>The phone was still on binary 5.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/12-download-mode-unlocked-custom.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/12-download-mode-unlocked-custom.png\" alt=\"Samsung Galaxy A12 Download Mode showing Current Binary Custom, OEM Lock OFF U and Warranty Void 0x1 after Magisk flash\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">14. Restoring the Original Stock Firmware<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Because the Magisk-patched AP bootlooped, I restored the exact stock firmware with Odin.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This time I used only the original firmware files:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>BL  - original BL\r\nAP  - original stock AP\r\nCP  - original CP\r\nCSC - original CSC<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The phone returned to Android normally and reached the home screen.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I then checked whether restoring stock firmware had relocked the bootloader:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>adb shell getprop ro.boot.flash.locked\r\nadb shell getprop ro.boot.verifiedbootstate\r\nadb shell getprop ro.boot.vbmeta.device_state\r\nadb shell getprop ro.bootloader\r\nadb shell getprop ro.build.display.id<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The important results were still:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ro.boot.flash.locked = 0\r\nro.boot.verifiedbootstate = orange\r\nro.boot.vbmeta.device_state = unlocked\r\n\r\nBootloader: A125FXXS5CXE3\r\nBuild: SP1A.210812.016.A125FXXS5CXE3<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">So restoring stock firmware repaired the bootloop without relocking the bootloader.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/13-bootloader-unlocked-after-stock-restore.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/13-bootloader-unlocked-after-stock-restore.png\" alt=\"ADB showing Galaxy A12 flash locked 0, orange verified boot and vbmeta device state unlocked after restoring stock firmware\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">15. Testing an Exact-Build Third-Party Boot Root Package<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Since the full Magisk-patched AP had bootlooped, I tested a third-party package built specifically for the same firmware:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>A125F U5 ROOT (A125FXXS5CXE3) OS12 [Magisk 27]<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I opened the package before flashing it. The TAR contained only:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>boot.img<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This was very different from the full AP method. It was designed as a boot-only root flash.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The package also included a short Arabic instruction file indicating that the root file should be flashed and the phone formatted afterward.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/boot-only-root-package-contents.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/boot-only-root-package-contents.png\" alt=\"Exact-build Galaxy A12 Magisk 27 root package in WinRAR with a TAR containing only boot.img\" \/><\/a>\r\n<figcaption class=\"wp-element-caption\">The third-party exact-build root TAR contained only boot.img.<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">16. Odin Rejected the Modified boot.img<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I loaded the third-party root TAR into Odin&#8217;s AP slot by itself.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>BL   - empty\r\nAP   - A125F U5 ROOT (A125FXXS5CXE3) OS12 [Magisk 27].tar\r\nCP   - empty\r\nCSC  - empty<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">For this attempt I disabled Auto Reboot and kept only <code>F. Reset Time<\/code> enabled.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This time Odin did not reach PASS.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The phone displayed:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Only official released binaries are allowed to be flashed (BOOT)<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Odin&#8217;s log showed:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Firmware update start..\r\nNAND Write Start!!\r\nSingleDownload.\r\nboot.img\r\nRQT_CLOSE !!\r\nComplete(Write) operation failed.\r\nAll threads completed. (succeed 0 \/ failed 1)<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The modified standalone boot image was therefore rejected before the flash could complete.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">After exiting Download Mode, the phone still booted normally into Android.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/15-official-binaries-boot-error.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/15-official-binaries-boot-error.png\" alt=\"Samsung Galaxy A12 Download Mode showing Only official released binaries are allowed to be flashed BOOT\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">17. Testing the Exact-Build ROOT+TWRP Package<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I then downloaded another package for the same exact build:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>A125F U5 Android 12 ROOT+TWRP (A125FXXS5CXE3)<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Inside it were:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Magisk 27.zip\r\nTWRP.tar<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I opened <code>TWRP.tar<\/code> and found that it contained only:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>recovery.img<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The intended approach therefore appeared to be: flash TWRP, boot directly into custom recovery and then install Magisk from recovery.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/16-root-twrp-package-contents.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/16-root-twrp-package-contents.png\" alt=\"Exact build Samsung Galaxy A12 root and TWRP package containing Magisk 27 zip and TWRP tar with recovery img\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">18. Odin Rejected recovery.img Too<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I loaded <code>TWRP.tar<\/code> into Odin&#8217;s AP slot and attempted the recovery-only flash.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Odin again failed during the partition write.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>NAND Write Start!!\r\nSingleDownload.\r\nrecovery.img\r\nRQT_CLOSE !!\r\nComplete(Write) operation failed.\r\nAll threads completed. (succeed 0 \/ failed 1)<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">So the standalone modified recovery image was rejected just as the standalone modified boot image had been.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/17-odin-twrp-recovery-failed.png\"><img decoding=\"async\" src=\"https:\/\/www.hovatek.com\/blog\/bpyeki\/uploads\/2026\/10\/17-odin-twrp-recovery-failed.png\" alt=\"Odin showing FAIL while attempting to flash TWRP recovery img on Samsung Galaxy A12 A125F U5\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">19. What I Learned From the Rooting Attempts<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Although I had started this experiment because I wanted root access for the larger anonymity project, the most interesting result from this first stage was that the three custom-image attempts did not fail in the same way.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">Full Magisk-patched AP\r\n\u2192 Odin accepted the flash\r\n\u2192 PASS\r\n\u2192 Android bootlooped\r\n\r\nThird-party boot.img TAR\r\n\u2192 Odin attempted boot.img\r\n\u2192 phone rejected it\r\n\u2192 FAIL\r\n\r\nThird-party TWRP recovery.img TAR\r\n\u2192 Odin attempted recovery.img\r\n\u2192 write failed\r\n\u2192 FAIL<\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This distinction matters.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The Galaxy A12 was not simply refusing every modified file. The complete Magisk-patched AP was accepted and written by Odin, while the standalone modified BOOT and RECOVERY images were rejected during the write itself.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The full AP attempt also changed the phone&#8217;s state enough for Download Mode to report <code>CURRENT BINARY: Custom<\/code>, while Knox changed to <code>WARRANTY VOID: 0x1<\/code>. Even so, the modified system could not complete Android boot.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The stock firmware package proved to be one of the most important things I prepared before starting. Returning to the exact <code>A125FXXS5CXE3<\/code> firmware restored the phone to a normal booting Android system after the Magisk bootloop.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I also confirmed that restoring the stock firmware did not relock the bootloader. ADB continued to report:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>ro.boot.flash.locked = 0\r\nro.boot.verifiedbootstate = orange\r\nro.boot.vbmeta.device_state = unlocked<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">That is useful for the rest of this series because it means I still have an unlocked test device and can continue investigating other rooting approaches without starting the bootloader-unlock process again.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">20. Why Root Matters for the Anonymity Experiment<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Rooting is not the actual objective of this project. It is infrastructure for what I want to test afterward.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Once I have reliable root access, I want to investigate the phone&#8217;s identity layer by layer instead of relying on privacy claims or assumptions.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Some of the areas I plan to examine include:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Android and application identifiers<\/li>\r\n<li>device model and system properties exposed to applications<\/li>\r\n<li>build and software fingerprint information<\/li>\r\n<li>advertising and application-level identifiers<\/li>\r\n<li>location and location-related services<\/li>\r\n<li>Wi-Fi and Bluetooth behavior<\/li>\r\n<li>public IP, DNS, IPv6 and other network information<\/li>\r\n<li>browser and WebView fingerprinting<\/li>\r\n<li>timezone, language, locale and screen characteristics<\/li>\r\n<li>Google and Samsung background services<\/li>\r\n<li>permissions, analytics and telemetry<\/li>\r\n<li>what remains identifiable even after obvious identifiers are changed<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The important part will be verification. If I change an identifier, I want to test whether applications or websites actually see the new value rather than simply assuming that a modification worked.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I also do not intend to describe the final phone as completely anonymous. A device can potentially be recognized through combinations of network behavior, accounts, software characteristics and other signals even when obvious identifiers have been changed.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The real question for this series is therefore: <strong>how much linkability can I actually remove from this Galaxy A12, and what information remains exposed when I am finished?<\/strong><\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">21. Where the Rooting Investigation Stands Now<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">At the end of this first round of testing, I have not yet achieved stable root, so I am not presenting this article as a successful Galaxy A12 rooting guide.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">What I have established is much more specific:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>The phone is an unlocked <code>SM-A125F<\/code> on Android 12, binary 5 and build <code>A125FXXS5CXE3<\/code>.<\/li>\r\n<li>The exact stock firmware can be flashed successfully and reliably restores the phone.<\/li>\r\n<li>Magisk 30.7 successfully patches the full Samsung AP archive.<\/li>\r\n<li>Odin accepts that complete patched AP and reports <code>PASS<\/code>.<\/li>\r\n<li>The resulting system enters a bootloop.<\/li>\r\n<li>An exact-build third-party standalone <code>boot.img<\/code> is rejected during the Odin write.<\/li>\r\n<li>An exact-build standalone TWRP <code>recovery.img<\/code> is also rejected during the Odin write.<\/li>\r\n<li>Restoring the stock firmware does not relock the bootloader.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The problem is therefore no longer simply finding firmware, unlocking the bootloader or learning how to use Odin. Those parts are already understood.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The next rooting question is much narrower: <strong>what is different about the full Magisk-patched AP that allows Odin to accept it, and why does that accepted firmware fail to boot while standalone modified BOOT and RECOVERY images are rejected outright?<\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">I will continue investigating that before moving fully into the identity and anonymity experiments.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This was supposed to be the setup stage for a much larger Android anonymity experiment. Before attempting to change how the Galaxy A12 identifies itself to applications, websites and networks, I wanted reliable root access so that I could inspect and control more of the operating system.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The root attempt turned into an investigation of its own.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The first Magisk approach got further than the later standalone-image attempts: Odin successfully flashed the complete patched AP and returned <code>PASS<\/code>, but Android entered a bootloop. By contrast, the exact-build boot-only and TWRP packages were rejected during the partition write itself.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Most importantly, the exact <code>A125FXXS5CXE3<\/code> stock firmware repeatedly returned the phone to a working state, and the bootloader remained unlocked afterward. That means the Galaxy A12 is still a usable test platform rather than a dead end.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">This is therefore only the beginning of the series.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Once I establish a stable root method, the next stage will be to record the phone&#8217;s baseline identity and begin testing how much of it can actually be changed, hidden or made less useful for fingerprinting.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The eventual goal is not to say, &#8220;I turned on a few privacy settings, therefore the phone is anonymous.&#8221; I want to measure what changes, what does not change and what still gives the device away.<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Samsung Galaxy A12 Anonymity Experiment \u2014 Part 1: Getting Root Access This post is the first part of a larger experiment I have been planning with my Samsung Galaxy A12: how anonymous can I make an Android phone when I have full control over the device? My eventual goal is to investigate how much of [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":13403,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-13401","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"_links":{"self":[{"href":"https:\/\/www.hovatek.com\/blog\/wp-json\/wp\/v2\/posts\/13401","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hovatek.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hovatek.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hovatek.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hovatek.com\/blog\/wp-json\/wp\/v2\/comments?post=13401"}],"version-history":[{"count":3,"href":"https:\/\/www.hovatek.com\/blog\/wp-json\/wp\/v2\/posts\/13401\/revisions"}],"predecessor-version":[{"id":13424,"href":"https:\/\/www.hovatek.com\/blog\/wp-json\/wp\/v2\/posts\/13401\/revisions\/13424"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hovatek.com\/blog\/wp-json\/wp\/v2\/media\/13403"}],"wp:attachment":[{"href":"https:\/\/www.hovatek.com\/blog\/wp-json\/wp\/v2\/media?parent=13401"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hovatek.com\/blog\/wp-json\/wp\/v2\/categories?post=13401"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hovatek.com\/blog\/wp-json\/wp\/v2\/tags?post=13401"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}