UFS

0
461

MẪU TỔNG HỢP SÁCH/POST BLOG THỰC CHIẾN PATCH BẢO MẬT ANDROID 14–16 (2025)


I. CÁC PHÂN VÙNG CHỨA KG, ID, MI ACCOUNT, FRP “NÓNG” CẦN QUÉT

Hãng Phân vùng cần quét Thường chứa Cảnh báo đặc biệt
Samsung super, persist, efs, keymaster, QSEE, rpmB, frp KG (KnoxGuard), FRP, SHA1, CRC32 Không erase super/persist/efs!
Huawei persist, cust, efs, modem, frp Huawei ID, SHA1, CRC32 Không erase persist/cust/efs!
Oppo/Vivo/Realme/OnePlus persist, oppo_custom, sec, key, qsee, frp ID/Account, trạng thái LOCKED Không erase persist/key/qsee!
Xiaomi cust, persist, userdata, frp Mi Account/MiCloud, base64, CRC32 Không erase cust/persist/userdata!
Pixel/Moto frp, misc, vendor FRP, trạng thái flag Chỉ erase block FRP độc lập

II. SIGNATURE THỰC CHIẾN MỚI NHẤT 2024–2025

  • Samsung: KNOXGUARD, KGStatus, KGVersion, KG_FLAG, CRC32, SHA1

  • Huawei: huawei_id, hwid, CRC32

  • Oppo/Vivo/Realme: oppo_id, vivo_account, LOCKED, PRENORMAL, CRC32

  • Xiaomi: micloud_lock, cloud_service, base64, CRC32

  • Pixel/Moto: FRP_LOCKED, frp_lock


III. HƯỚNG DẪN PATCH TỪNG TRƯỜNG HỢP

A. PATCH SHA1 (40 KÝ TỰ HEX hoặc 20 BYTE NHỊ PHÂN)

Trước patch (Samsung, offset 0x1A4C0):

nginx
a9 82 f0 08 b0 20 4e 98 09 98 ec f8 42 7e af 3e 6d 72
# SHA1: a982f008b0204e980998ecf8427eaf3e6d72

Sau patch (null):

bash
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
# SHA1: (đã null hết)

Hoặc nếu text:
Trước: d41d8cd98f00b204e9800998ecf8427eaf3e6d72
Sau: 0000000000000000000000000000000000000000

Script:

python
data[offset:offset+40] = b"0"*40 # nếu dạng text
# hoặc:
data[offset:offset+20] = b"\x00"*20 # nếu nhị phân

B. PATCH BASE64 (MiCloud Xiaomi, 32–44 ký tự)

Trước patch (offset 0x60000):

ini
QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Sau patch (null):

diff
========================

Script:

python
data[offset:offset+24] = b"="*24

C. PATCH CRC32 (8 ký tự hex)

Trước patch (cuối vùng KG Samsung):
a72b1a21
Sau patch (tính lại bằng script):
bfe2986a (giá trị CRC32 mới của vùng đã sửa)

Script:

python
import zlib
crc = zlib.crc32(data[start:end]) & 0xFFFFFFFF
data[crc_offset:crc_offset+4] = crc.to_bytes(4, 'big')

D. PATCH TRẠNG THÁI/ID/FLAG

Trước patch (Oppo/Vivo offset 0x90000):
"status":"LOCKED"
Sau patch:
"status":"NORMAL"

Script:

python
data[offset:offset+6] = b"NORMAL"

E. PATCH NULL ID, TOKEN, UID

Trước patch (Huawei offset 0x44500):
"huawei_id":"abc1234567890"
Sau patch:
"huawei_id":"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"

Script:

python
data[offset:offset+13] = b"\x00"*13

F. PATCH FRP FLAG (Pixel/Moto, offset 0x12000):

Trước patch:
FRP_LOCKED\x01
Sau patch:
FRP_LOCKED\x00

Script:

python
data[offset+10] = 0x00

IV. BẢNG TỔNG HỢP SCRIPT PATCH – Dễ copy

python

def patch_sha1(data, offset, text_mode=True):
if text_mode:
data[offset:offset+40] = b”0″*40
else:
data[offset:offset+20] = b”\x00″*20
return data

def patch_base64(data, offset, length, mode=”null”):
if mode == “null”:
data[offset:offset+length] = b”=”*length
elif mode == “fake”:
data[offset:offset+length] = b”A”*(length-2)+b”==”
return data

def patch_crc32(data, offset, length, crc_offset):
import zlib
crc = zlib.crc32(data[offset:offset+length]) & 0xFFFFFFFF
data[crc_offset:crc_offset+4] = crc.to_bytes(4, ‘big’)
return data

def patch_status(data, offset, old=”LOCKED”, new=”NORMAL”):
data[offset:offset+len(old)] = new.encode()
return data

def patch_null(data, offset, length):
data[offset:offset+length] = b”\x00″*length
return data

def patch_frp(data, offset):
data[offset] = 0x00
return data


V. LƯU Ý VÀ QUY TRÌNH THỰC CHIẾN

  1. Tìm đúng offset vùng chứa signature bằng tool hoặc hex editor.

  2. Patch đúng dạng, đúng độ dài (null, fake, đổi trạng thái, tính lại CRC32).

  3. Không sửa offset, không đổi dạng (SHA1 phải thành SHA1, base64 phải thành base64).

  4. Không erase vùng bảo mật ngoại trừ block FRP độc lập.

  5. Backup file trước khi patch. Verify CRC/SHA1 nếu có. Flash lại máy và test.

Rate this post
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất