API Play Integrity của Google là dịch vụ xác minh tính toàn vẹn của mã ứng dụng và phần cứng nó chạy để bảo vệ người dùng khỏi mối đe dọa độc hại. Khi bootloader của điện thoại được mở khóa hoặc root, các kiểm tra Play Integrity API sẽ thất bại.
Kiểm tra Play Integrity đã vượt qua trên thiết bị Android.
Như tên gọi, Play Integrity sẽ kiểm tra xem phần cứng thiết bị có an toàn (không sửa đổi, non-rooted) và xác minh file nhị phân ứng dụng (verify app binaries) để đảm bảo chúng đến từ nguồn hợp pháp. Google cho phép nhà phát triển dùng Play Integrity API trong ứng dụng để xác định rủi ro bảo mật; việc ứng dụng làm gì tiếp theo tùy thuộc vào người tạo.
Hầu hết ứng dụng không quan tâm mọi kiểm tra toàn vẹn đều vượt qua, nhưng một số, với dữ liệu nhạy cảm như ngân hàng và chính phủ, chặn những điện thoại này dùng dịch vụ. Dưới đây là một số lý do kiểm tra Play Integrity có thể thất bại trên thiết bị của bạn:
- Thiết bị có bootloader mở khóa (unlocked bootloader).
- Thiết bị đã root.
- Thiết bị chạy custom ROM.
- Nếu bản sửa lỗi được triển khai, nó có thể bị vá (patched) hoặc xung đột với module khác.
- Thiết bị dùng ROM không ký (unsigned ROM).
- DenyList trong Magisk có thể không được cấu hình để loại trừ dịch vụ Google.
Cách vượt qua kiểm tra Play Integrity thất bại?
Để vượt qua kiểm tra Play Integrity, thiết bị sẽ cần giả mạo hoặc bỏ qua các yêu cầu nói trên để lách đường qua các kiểm tra này. Có cách hợp pháp, và có các module giải pháp thay thế về cơ bản sẽ lừa Play Integrity hiển thị dấu tích xanh và sau đó cho phép ứng dụng với phát hiện trạng thái thiết bị nghiêm ngặt chạy trên điện thoại của bạn.
↪ Quay lại ROM gốc của thiết bị (Khóa Bootloader)
Vì Play Integrity xác minh trạng thái thiết bị, cách đơn giản và hợp pháp nhất để lấy lại trạng thái đó là quay lại bootloader đã khóa và flash ROM gốc của nhà sản xuất. Đây sẽ là cách đơn giản và hiệu quả nhất để tránh phiền toái cập nhật định kỳ các module cụ thể trong Magisk.
Trạng thái bootloader trên điện thoại Xiaomi.
Ngoài ra, nếu dịch vụ ngân hàng của bạn coi trọng bảo mật, bạn có thể muốn cân nhắc chọn không dùng các giải pháp thay thế. Nếu và khi module Play Integrity bị vá, có khả năng dịch vụ tài chính sẽ phát hiện và có thể chặn dịch vụ cụ thể, như ngân hàng trực tuyến, chạy trên tài khoản của bạn, hoặc thậm chí khóa bạn khỏi tài khoản.
↪ Module Play Integrity Fix (Giữ Root & Trạng thái Bootloader)
Tuyên bố miễn trừ trách nhiệm: Các phương pháp trong hướng dẫn này liên quan đến thay đổi hệ điều hành và cài đặt bảo mật thiết bị, có thể rủi ro. Việc này có thể làm mất bảo hành thiết bị và dẫn đến mất dữ liệu, vấn đề hệ thống, hoặc lỗ hổng bảo mật. Nó cũng có thể vi phạm quy tắc của một số ứng dụng hoặc dịch vụ, có thể dẫn đến treo tài khoản hoặc cấm. Hãy tiến hành thận trọng. Hướng dẫn này chỉ cho mục đích giáo dục. Chúng tôi không chịu trách nhiệm về bất kỳ thiệt hại, mất mát, hoặc vấn đề pháp lý nào có thể phát sinh từ việc làm theo hướng dẫn này.
Đối với hầu hết người root thiết bị qua Magisk, Play Integrity Fix là module bắt buộc cài. Module này vượt qua giới hạn Play Integrity và giả mạo ứng dụng để xác minh tính xác thực của thiết bị. Tuy nhiên, trước khi tiến hành, có một số yếu tố bạn cần kiểm soát.
Điều kiện tiên quyết
- Đảm bảo phiên bản mới nhất của Google Play Services được cài trên điện thoại.
- Bạn có thể dùng liên kết trực tiếp đến Play Store để kiểm tra xem có tùy chọn cập nhật Google Play services không.
- Bạn cũng có thể mở Play Store > Nhấn ảnh tài khoản (góc trên bên phải) > Cài đặt > Giới thiệu > "Cập nhật Play Store."
- Đảm bảo bạn dùng custom ROM đã ký (signed custom ROM) trên thiết bị.
- Bạn có thể dùng app RomSignCheck (cài ngoài) để kiểm tra ROM có được ký không. Nếu có, nó sẽ hiển thị thông báo "ROM sign normal" hoặc "ROM sign is testkey".
- Cập nhật lên phiên bản Magisk mới nhất, hoặc chuyển sang Kitsune Mask, một nhánh của Magisk Manager chính thức với tính năng MagiskHide cũ được thêm lại.
- Cho người dùng KernelSU, flash module Zygisk Next để truy cập Zygisk (tích hợp sẵn cho người dùng Magisk).
- Cài MT Manager trên thiết bị. Nó sẽ dùng để cài file keybox hoạt động cho token Play Integrity.
Quy trình cài đặt
Tổng quan chung của phần này là nó sẽ ẩn các ứng dụng được chọn khỏi việc bị phát hiện trong môi trường root và sẽ cài Magisk làm ứng dụng proxy. Nếu Môi trường Thực thi Tin cậy (TEE) bị hỏng, nó sẽ cố gắng sửa nó, dùng Shamiko để ẩn Zygisk, và cuối cùng flash module Play Integrity Fix.
1) Ẩn ứng dụng Magisk
Kế hoạch hành động đầu tiên là ẩn chính ứng dụng Magisk. Một số dịch vụ truy cập danh sách ứng dụng cài trên điện thoại, và nếu tìm thấy Magisk, chúng dùng thông tin đó để suy ra thiết bị đã được sửa đổi. Magisk cho phép bạn thay thế nó bằng ứng dụng proxy với ID gói ngẫu nhiên.
- Mở Magisk và nhấn vào Cài đặt (bánh răng) góc trên bên phải.
- Cuộn xuống "Giấu ứng dụng Magisk (Hide the Magisk app)", và nhấn vào nó.
- Đổi tên file thành tên ứng dụng ngẫu nhiên và nhấn "OK".
- Magisk hiện đã được giả mạo thành ứng dụng khác với ID gói ngẫu nhiên.
2) Cấu hình DenyList
Các ứng dụng được chọn trong DenyList là tập hợp dịch vụ sẽ được tham chiếu để đưa vào danh sách đen khỏi phát hiện root. Nghĩa là module như Shamiko và MagiskHide sẽ dùng danh sách này để chặn ứng dụng nhận diện trạng thái root trên thiết bị.
- Mở Magisk và nhấn vào Cài đặt (bánh răng) góc trên bên phải.
- Cuộn xuống "Cấu hình DenyList (Configure DenyList)", và nhấn vào nó.
- Nhấn menu ba chấm dọc góc trên bên phải và chọn "Hiển thị ứng dụng hệ thống (Show system apps)".
- Từ danh sách ứng dụng, tìm Google Play Services, mở rộng hộp thoại, và bật công tắc cho "com.google.android.gms" và "com.google.android.gms.unstable."
- Quay lại danh sách, tìm Google Play Store, và bật công tắc cho "com.android.vending."
Lưu ý: Vào cài đặt điện thoại, buộc dừng (force stop) và xóa dữ liệu cho cả Google Play Store và Play Services sau khi cấu hình DenyList.
3) Giả mạo trạng thái Bootloader (Nếu TEE bị hỏng)
Vì Play Integrity cũng dựa vào trạng thái bootloader để kiểm tra toàn vẹn thiết bị, quan trọng phải giả mạo điều đó nữa.
- Kiểm tra xem Môi trường Thực thi Tin cậy (Trusted Execution Environment) có bị hỏng không.
- Để làm vậy, lấy Momo, và kiểm tra trạng thái TEE.
- Nếu TEE bị hỏng cho thiết bị, bạn sẽ cần flash module LSPosed.
- Từ cài đặt Xposed, bật module BootloaderSpoofer.
- Nếu cần giấu trạng thái root từ ứng dụng cụ thể, chọn chúng ở đây.
4) Ẩn Zygisk & Flash module Play Integrity Fix
Để ẩn dấu vết root còn lại từ thiết bị, flash module Shamiko (Magisk), hoặc Zygisk Assistant, nếu bạn dùng KernelSU.
- Tải module Play Integrity Fix từ kho của chiteroman.
- Lấy module TrickyStore từ kho của aviraxp.
- Flash cả hai module này qua Magisk.
5) Đẩy file Keybox hoạt động qua MT Manager
Quan trọng phải cập nhật file keybox định kỳ vì chúng sớm muộn bị vá. Đây sẽ là khóa dùng để giả mạo token toàn vẹn. Bạn có thể tìm token này qua diễn đàn trực tuyến trên XDA, Reddit, và Telegram.
- Mở MT Manager và sao chép file keybox của bạn.
- Đến
<em>/data/adb/tricky_store/</em>và dán file đó. - Nhấn giữ file keybox, và vào thuộc tính (properties).
- Trước "Chủ sở hữu (Owner)," bạn sẽ thấy root. Nhấn Sửa đổi (Modify).
- Nhấn vào Nhóm (Group), và chọn "root – 0."
- Quay lại thuộc tính và trước Quyền (Permissions), nhấn Sửa đổi (Modify).
- Chọn "Khác (Other)" dưới Đọc (Read) và bỏ chọn "Nhóm (Group)" dưới Ghi (Write).
- Nhấn "OK." Lưu ý: Khi ứng dụng yêu cầu Play Integrity API, nó trả về token toàn vẹn được ký bằng khóa riêng. Để bypass, chúng ta cần keybox tùy chỉnh, hoạt động, để tạo token vượt qua kiểm tra và lừa ứng dụng tin rằng nó chạy trên môi trường không sửa đổi, non-rooted.
- Sau khi mọi thứ thiết lập xong, reboot thiết bị, lấy app Play Integrity API Checker, và kiểm tra trạng thái toàn vẹn thiết bị.
TÁC GIẢ
Muhammad Qasim
Niềm đam mê công nghệ và game của Qasim thúc đẩy anh không chỉ cập nhật các phát triển mới nhất mà còn chia sẻ góc nhìn chuyên môn với người khác qua viết lách. Dù qua công việc này hay các nỗ lực khác, anh cam kết chia sẻ chuyên môn và đóng góp có ý nghĩa cho thế giới công nghệ và game.