Thiết lập proxy Charles cho SDK quảng cáo trên thiết bị di động của Google trên phiên bản Android N trở lên

Trên Android N trở lên, các lệnh gọi quảng cáo chỉ hiển thị trong proxy Charles khi bạn thực hiện các bước sau:

  1. Cập nhật Dịch vụ Google Play trên thiết bị di động.
  2. Bật tính năng truy vết mạng trên thiết bị di động.
  3. Cài đặt chứng chỉ SSL Charles trên thiết bị và thiết lập proxy.
  4. Bật Proxy SSL cho ứng dụng di động.

Cập nhật Dịch vụ Google Play trên thiết bị di động

Đối với trình mô phỏng, nếu bạn không thấy phần Google Play trong trình đơn bên, thì có thể bạn cần cập nhật Android Studio. Tải hình ảnh hệ thống mới nhất xuống trong Virtual Device Configuration rồi sử dụng hình ảnh hệ thống có Google Play trong mục tiêu.

Sử dụng trình đơn bên để kiểm tra và cập nhật Dịch vụ Google Play lên phiên bản mới nhất.

Đối với thiết bị di động thực (điện thoại hoặc máy tính bảng), bạn có thể tìm kiếm Google Play hoặc nhấp vào đường liên kết này để mở trực tiếp Google Play.

Bật tính năng truy vết mạng trên thiết bị di động

Để bật tính năng truy vết mạng, hãy bật Tùy chọn cho nhà phát triển trên thiết bị. Để biết thông tin chi tiết, hãy xem bài viết Định cấu hình tuỳ chọn cho nhà phát triển trên thiết bị.

Mở ứng dụng Cài đặt của Google rồi chọn Google > Quảng cáo > Bật tính năng ghi nhật ký gỡ lỗi cho quảng cáo. Để biết thông tin chi tiết, hãy xem bài viết Truy vết mạng.

Cài đặt chứng chỉ SSL Charles trên thiết bị và thiết lập proxy

Để sử dụng Charles làm proxy cho ứng dụng, hãy tải và cài đặt Charles trên máy tính.

Để lưu chứng chỉ dưới dạng tệp .pem hoặc .cer, hãy chọn Help > SSL Proxying > Save Charles Root Certificate (Trợ giúp > Proxy SSL > Lưu chứng chỉ gốc Charles). Để cài đặt chứng chỉ trên thiết bị, hãy làm theo lời nhắc trong phần Help > SSL Proxying (Trợ giúp > Proxy SSL).

Nếu bạn sử dụng trình mô phỏng Android có proxy, hãy đặt địa chỉ proxy thành http://127.0.0.1. Đặt cổng thành giá trị xuất hiện trong Charles từ Proxy > Proxy Settings (Proxy > Cài đặt proxy).

Nếu bạn sử dụng thiết bị thực, hãy kết nối thiết bị đó với cùng mạng Wi-Fi như máy tính của bạn. Để thiết lập proxy, hãy mở phần cài đặt mạng nâng cao của thiết bị. Để biết thông tin chi tiết, hãy xem bài viết Kết nối với mạng Wi-Fi trên điện thoại Pixel. Trong Charles, hãy chọn Help > Local IP Address (Trợ giúp > Địa chỉ IP cục bộ) để tìm địa chỉ IP của bạn. Trên thiết bị, hãy nhập địa chỉ IP từ Charles và cổng Charles làm proxy.

Bật proxy SSL cho ứng dụng di động

Để Charles chặn lưu lượng truy cập SSL của ứng dụng di động, hãy khai báo rằng ứng dụng của bạn có thể tin cậy chứng chỉ SSL. Bạn có thể tin cậy chứng chỉ do người dùng cài đặt hoặc nhúng chứng chỉ Charles làm tài nguyên thô trong ứng dụng. Ví dụ: bạn có thể lưu chứng chỉ trong tệp res/raw/charles_cert.pem.

Trước tiên, hãy thêm một tệp tài nguyên XML mới cho Cấu hình bảo mật mạng trong tệp res/xml/network_security_config.xml của bạn:

<network-security-config>
   <debug-overrides>
       <trust-anchors>
           <!-- Trust Charles SSL certificate stored in res/raw -->
           <certificates src="@raw/charles_cert" />
           <!-- Trust user added CAs while debuggable only -->
           <certificates src="user" />
       </trust-anchors>
   </debug-overrides>
</network-security-config>

Tiếp theo, hãy cập nhật tệp AndroidManifest.xml để sử dụng cấu hình bảo mật mạng.

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application ...
                 android:networkSecurityConfig="@xml/network_security_config"
                 ... >
        ...
    </application>
</manifest>

Sau đó, bạn có thể chạy ứng dụng di động và tìm yêu cầu quảng cáo trong nhật ký Charles.