Cách đọc lỗi panic full trên iPhone
Cập nhật 2026-10-14
Để đọc lỗi panic full, xem ba thứ: trường product (đời máy, ví dụ iPhone16,2), dòng panic(cpu …) trong panicString (nhóm lỗi), và mã hoặc tên cảm biến (ví dụ sensor array 4194304 = 0x400000, hoặc Missing sensor(s): mic2). Sau đó tra mã theo đúng đời máy.
Một file panic full gồm những gì?
File panic-full-….ips là văn bản thuần, mở được bằng bất kỳ trình soạn thảo nào. Dòng đầu tiên là một khối JSON ngắn, sau đó là phần thân dài hơn. Bạn chỉ cần vài trường:
| Trường | Ví dụ | Ý nghĩa |
|---|---|---|
bug_type |
210 |
Loại báo cáo. 210 = kernel panic (panic full). |
product |
iPhone16,2 |
Mã nội bộ của đời máy. iPhone16,2 = iPhone 15 Pro Max. |
os_version |
iPhone OS 18.x |
Phiên bản iOS lúc panic. |
panicString |
panic(cpu 0 caller …): … |
Lý do kernel dừng lại. Phần quan trọng nhất. |
Nếu bug_type không phải 210, có thể bạn đang mở báo cáo crash của ứng dụng chứ không phải panic full. Những file đó không giúp chẩn đoán phần cứng.
Đọc dòng panic(cpu …) thế nào?
panicString luôn bắt đầu bằng một dòng dạng:
panic(cpu 4 caller 0xfffffff0…): <thông báo>
Số CPU và địa chỉ hầu như không có ích khi sửa chữa. Hãy tập trung vào thông báo phía sau dấu hai chấm: nó cho biết nhóm lỗi. Một số mở đầu thường gặp:
SMC PANIC - ASSERT…SMC BSC failure…sensor array: một cảm biến bắt buộc không phản hồi.userspace watchdog timeout: no successful checkins from …: một tiến trình hệ thống bị treo.AOP PANIC: Always-On Processor.ANS2hoặcnvme: bộ nhớ NAND.i2c…: lỗi giao tiếp trên bus I2C.
Danh sách đầy đủ theo nhóm có trong codes.
Đọc mã “sensor array” như thế nào?
Đây là trường hợp thường gặp nhất trên các iPhone đời mới. Dòng trông như sau:
SMC PANIC - ASSERT: … SMC BSC failure … sensor array 0 - 4 is 0, 4194304
Con số khác 0 (4194304) là mã của cảm biến bị thiếu. Tùy phiên bản, log ghi nó ở dạng thập phân (4194304) hoặc trực tiếp ở dạng hex (0x0, 0x400000, 0x0…). Bảng tra của iFixit, Repair Wiki và cơ sở dữ liệu của chúng tôi đều dùng dạng thập lục phân (hex):
- 4194304 (thập phân) = 0x400000 (hex)
- 1048576 = 0x100000
- 2097152 = 0x200000
Bộ điều khiển SMC chờ phản hồi từ từng cảm biến bắt buộc; khi một cảm biến im lặng, nó buộc máy khởi động lại. Vì vậy lỗi này thường đi kèm chu kỳ khởi động lại đều đặn (xem iPhone khởi động lại mỗi 3 phút: nguyên nhân và mã lỗi).
Mã kết hợp: tổng của nhiều bit
Giá trị sensor array là mặt nạ bit: mỗi cảm biến ứng với một bit. Nếu nhiều cảm biến cùng thiếu, mã là tổng (phép OR) của các bit đó. Ví dụ trên iPhone 14 / 14 Plus:
- 0x100000 = cáp chân sạc
- 0x200000 = cảm biến tiệm cận (cáp cảm biến trước)
- 0x400000 = cuộn sạc không dây
- 0x300000 = 0x100000 + 0x200000 → chân sạc và tiệm cận
- 0x700000 = cả ba cảm biến cùng thiếu
Khi ba cảm biến cùng hỏng một lúc, hãy nghĩ đến oxy hóa hoặc một lỗi main chung hơn là ba linh kiện hỏng riêng lẻ.
Missing sensor(s): mic2 nghĩa là gì?
Trên các đời máy cũ hơn, panic thường là kiểu watchdog với thermalmonitord, và log nêu thẳng tên cảm biến:
userspace watchdog timeout: no successful checkins from thermalmonitord
… Missing sensor(s): mic2
thermalmonitord (tiến trình giám sát nhiệt) không nhận được số đo từ cảm biến được nêu, và sau khoảng 3 phút iOS khởi động lại máy. Một vài tên thường gặp:
| Cảm biến | Linh kiện cần kiểm tra trước |
|---|---|
prs0 |
Cáp chân sạc (cảm biến áp suất khí quyển) |
mic1 |
Cáp chân sạc (mic dưới) |
mic2 |
Cáp nút nguồn / đèn flash (mic phụ phía sau) |
TG0B, TG0V |
Pin (dữ liệu chip đo dung lượng) |
Với mic2, cáp nút nguồn rất dễ hỏng khi thay kính lưng, nên hãy kiểm tra nó trước.
“userspace watchdog timeout: no successful checkins from wifid” có phải lỗi phần cứng?
Chưa chắc. Thông báo này nghĩa là tiến trình Wi-Fi (wifid) không “điểm danh” với watchdog trong thời hạn (khoảng 180 giây). Nguồn iFixit xếp nó vào nhóm lỗi phần mềm thường gặp trên iOS 16. Một số người cho rằng có thể do module Wi-Fi hoặc cáp sạc, nhưng chưa có xác nhận rõ ràng.
Quy tắc chung với watchdog: đọc tên tiến trình sau “checkins from”. Nếu đó là logd, SpringBoard hoặc wifid và không có “Missing sensor(s)”, hãy cập nhật hoặc restore iOS trước khi thay linh kiện. Nếu là thermalmonitord kèm tên cảm biến, đó là lỗi cảm biến.
Vì sao cùng một mã lại khác nghĩa tùy đời máy?
Apple phân bổ bit khác nhau cho mỗi thế hệ. Cùng giá trị 0x100000:
- trên iPhone 14 / 14 Plus: cáp chân sạc;
- trên iPhone 14 Pro / Pro Max: cáp nút nguồn;
- trên iPhone 15 / 15 Plus: cáp cảm biến trước (tiệm cận);
- trên iPhone 15 Pro / Pro Max: cáp chân sạc (USB-C).
Đó là lý do trường product quan trọng ngang với mã lỗi. Đừng bao giờ áp dụng bảng của một đời máy cho đời khác. Bảng đầy đủ theo đời máy có trong table.
Ví dụ thực tế: iPhone 15 Pro Max khởi động lại liên tục
Một chiếc iPhone 15 Pro Max khởi động lại khoảng mỗi vài phút. File panic-full cho thấy:
bug_type: 210 → đây đúng là kernel panic;product: iPhone16,2 → iPhone 15 Pro Max;panicString:SMC PANIC … BSC failure … sensor array 0 - 4 is 0, 4194304.
Cách đọc:
- 4194304 = 0x400000.
- Trên iPhone16,1 / iPhone16,2 (15 Pro / 15 Pro Max), 0x400000 ứng với cảm biến trên cáp cuộn sạc không dây (MagSafe, nằm ở kính lưng).
- Cuộn sạc không còn phản hồi, SMC buộc máy khởi động lại, lặp lại chừng nào cảm biến còn im lặng. Nghiên cứu DFRWS 2025 đã tái hiện lỗi này trên iPhone 15 Pro bằng cách tháo cuộn sạc.
Bài test tiếp theo: kiểm tra cáp cuộn sạc không dây và đầu nối (cắm chặt chưa, gập, oxy hóa), sau đó thử với kính lưng/cuộn sạc chắc chắn tốt cùng đời máy.
Bẫy cần tránh: cảm biến này được ghép đôi/hiệu chỉnh với main. Kính lưng hoặc cuộn sạc không phải của Apple có thể gây ra đúng panic này. Dùng linh kiện Apple (Self Service Repair + System Configuration, hoặc Trợ lý sửa chữa trên iOS 18+).
Panic full và reset counter: đọc file nào?
Trong Dữ liệu phân tích, file ResetCounter chỉ ghi nhận rằng máy đã khởi động lại bất thường. Nó không có panicString, nên không cho biết linh kiện nào. Khi khách nói máy “bị lỗi panic full và reset counter”, hãy tìm file panic-full cùng thời điểm: đó mới là file cần đọc. Nếu chỉ có ResetCounter mà không có panic-full, nguyên nhân có thể là mất nguồn chứ không phải kernel panic (xem iPhone tự tắt nguồn rồi tự bật lại: pin, nhiệt hay panic?).
Đọc nhanh hơn bằng công cụ
Đọc tay hữu ích để hiểu, nhưng dễ nhầm khi đổi thập phân sang hex, tách mã kết hợp hoặc nhớ bảng của từng đời máy. Thả file vào tool: công cụ làm tất cả các bước trên, hiển thị linh kiện nghi ngờ dạng 3D, bài test tiếp theo và các bẫy khi sửa. Nếu chưa có file, xem Cách lấy file panic full trên iPhone (iOS, 3uTools, Xcode).