Cắm đầu đọc vào máy rồi bấm Kết nối. Không cài phần mềm, không cần quyền quản trị.
connect-src 'none' nên
trình duyệt cưỡng chế chặn mọi kết nối mạng của trang, kể cả khi mã
nguồn có muốn gửi. Mở DevTools → Network trong lúc đọc thẻ sẽ thấy trống.
Trang này làm gì. Gửi một lệnh đọc xuống đầu đọc qua WebUSB và vẽ kết quả trả về. Toàn bộ mật mã và việc bóc dữ liệu thẻ chạy trong đầu đọc; tệp này không chứa hằng số mật mã nào. Không CDN, không thư viện, không phông chữ tải về — một tệp, đọc hết được.
Kiểm chứng "không gửi đi đâu". Dòng đầu tệp: connect-src 'none' —
Content Security Policy do trình duyệt cưỡng chế: không fetch, XHR, WebSocket, beacon.
Mở DevTools → Network trong lúc đọc thẻ: danh sách trống.
Chạy ngoại tuyến. Tải tệp về, bấm đúp mở bằng Chrome hoặc Edge — chạy từ
file://, không cần máy chủ, không cần Internet. Lưu ý: mọi tệp mở bằng
file:// dùng chung một nguồn gốc, nên quyền truy cập đầu đọc sau khi cấp áp cho
mọi tệp HTML trên máy đó (vẫn phải có thẻ đặt trên đầu đọc và số trên mặt thẻ mới đọc được).
Đặt lên máy chủ nội bộ. Chép tệp vào thư mục web (nginx / IIS / Apache) — bắt buộc HTTPS, chứng chỉ nội bộ do CA của quý khách cấp là đủ. Không PHP, không database, không tiến trình nền. Quyền truy cập thiết bị được trình duyệt nhớ theo địa chỉ trang: chọn địa chỉ cố định ngay từ đầu.
Máy người dùng. Windows 10/11 và macOS: không cài gì. Android: cáp OTG. Linux: tạo
/etc/udev/rules.d/60-eetium.rules với hai dòng dưới (tên tệp phải bắt đầu bằng
60-), rồi sudo udevadm control --reload && sudo udevadm trigger,
rút cắm lại đầu đọc. Trình duyệt: Chrome, Edge hoặc Opera. Firefox, Safari và mọi trình duyệt
trên iPhone/iPad không hỗ trợ WebUSB.
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="f001", MODE="660", GROUP="plugdev", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000f", MODE="660", GROUP="plugdev", TAG+="uaccess"
Tích hợp phần mềm riêng. Giao thức của đầu đọc là JSON một dòng trên USB bulk, lớp vendor 0xFF — dùng được từ C#, Python, Java qua WinUSB / libusb. Liên hệ EETIUM để nhận đặc tả.
Báo lỗi. Mở mục Nhật ký kỹ thuật bên dưới và gửi kèm nội dung — có phiên bản firmware, số máy và trao đổi với thiết bị; không có số định danh hay dữ liệu thẻ.