Apple xử lý vụ Antennagate chỉ với 20 byte mã lệnh.

Năm 2010, Apple ra mắt iPhone 4, cho tới nay vẫn luôn được coi là một sản phẩm với thiết kế tuyệt đẹp. Tuy nhiên, đây lại trở thành tâm điểm của vụ “Antennagate” nổi tiếng. Người dùng phát hiện rằng khi cầm máy theo cách thông thường, cột sóng tụt mạnh chỉ trong vài giây. Nhiều người tin rằng đây là lỗi phần cứng nghiêm trọng do thiết kế antenna nằm ở viền kim loại, nhưng thực tế, vấn đề lớn nhất lại nằm ở phần mềm, và nó được Apple sửa chỉ bằng 20 byte mã lệnh.
Câu chuyện bắt đầu khi Apple nhận ra công thức tính số vạch sóng hiển thị trên màn hình iPhone 4 bị sai. Phần mềm của máy đã “lạc quan” quá mức, thường hiển thị nhiều hơn 2 vạch sóng so với tín hiệu thật. Nghĩa là khi bạn thấy 4-5 vạch, tín hiệu thực tế có thể chỉ đủ cho 2 vạch. Vì vậy, khi tay che lên phần antenna và cường độ sóng giảm một chút, giao diện liền tụt 3 vạch cùng lúc, khiến người dùng tưởng rằng máy mất sóng nghiêm trọng.
Nhà phát triển Sam Henri Gold mới đây đã tìm ra đoạn mã mà Apple đã thay đổi trong năm 2010. Trong tệp hệ thống CoreTelephony, anh phát hiện bảng tra cứu (lookup table) quy định ngưỡng tín hiệu cho từng mức vạch. Trên iOS 4.0.1, Apple chỉ sửa nhẹ các giá trị trong bảng đó, với đúng 20 byte, để đường cong chuyển đổi tín hiệu mượt hơn, phản ánh thực tế hơn. Kết quả là tín hiệu giờ khó lên 5 vạch, nhưng cũng không tụt thảm từ 5 xuống 2 vạch chỉ vì bạn đổi tư thế cầm.
Thêm một chi tiết thú vị: Apple còn tăng nhẹ chiều cao của các cột sóng thấp để người dùng cảm thấy “ít yếu” hơn. Một chỉnh sửa nhỏ, nhưng đã khép lại một trong những rắc rối nổi tiếng nhất lịch sử iPhone.
Chú thích:
Hinh 2: 20 byte fix mà Apple thực hiện
Hình 3: ngưỡng sóng ở iOS 4.0
Hình 4: ngưỡng sóng ở iOS 4.0.1