2 điểm bởi GN⁺ 2024-11-13 | 1 bình luận | Chia sẻ qua WhatsApp
  • Sau iOS 18.1, AirPods Pro 2 có thể được dùng như máy trợ thính, nhưng do hạn chế khu vực, người dùng khiếm thính ở Ấn Độ không thể sử dụng ngay tính năng cốt lõi này
  • Các điều kiện hạn chế trải rộng trên nhiều trục như có cư trú tại quốc gia được hỗ trợ hay không, iOS 18.1 trở lên, firmware 7B19 trở lên; thiết bị có thể xác định vị trí bằng cách tổng hợp IP, locale, GPS, mạng di động và thông tin vị trí WiFi
  • Việc thao túng proxy và mô phỏng CoreLocation của Xcode đều thất bại; dựa trên log locationd và các manh mối trong phần cài đặt, có vẻ vị trí mô phỏng không được dùng để xác định miền quản lý
  • Cuối cùng, một thử nghiệm lồng Faraday được tiến hành: dùng dữ liệu Wigle và ESP32 để mô phỏng môi trường WiFi ở Menlo Park, California, đồng thời dùng hộp bọc giấy nhôm và lò vi sóng để giảm tín hiệu xung quanh
  • Tính năng Hearing Aid sau khi được kích hoạt một lần sẽ được đồng bộ với tài khoản iCloud và có thể dùng trên các thiết bị khác; việc tạo ra quy trình có thể tái lập để mở tính năng bị giới hạn khu vực cho người dùng thực tế vẫn là nhiệm vụ trọng tâm

Hạn chế khu vực của tính năng trợ thính trên AirPods Pro 2

  • Ngay sau bản cập nhật iOS 18.1, AirPods Pro 2 được mua cho ông bà bị khiếm thính, nhưng Apple giới hạn tính năng Hearing Aid ở Mỹ và một số quốc gia, khiến nó về thực tế không thể sử dụng tại Ấn Độ
  • Máy trợ thính thông thường có thể có giá từ ₹50.000 đến hơn ₹8L tùy khả năng hiệu chỉnh
  • Apple quảng bá rằng tính năng trợ thính của AirPods có thể hiệu chỉnh thính lực lên tới 60dbHL, đặc biệt quanh các tần số giọng nói
  • Nếu đang ở vị trí được hỗ trợ, sở hữu AirPods Pro 2, dùng iOS 18.1 trở lên và firmware 7B19 trở lên, người dùng có thể thấy màn hình tính năng này trong ứng dụng Health
    • Khi “kích hoạt” tính năng trên thiết bị chạy iOS 18.1 trở lên, tính năng có thể được đẩy sang cả thiết bị có phiên bản firmware cũ hơn như 7A294

Các đường dẫn iOS dùng để xác định vị trí

  • Trong khảo sát ban đầu, thiết bị iOS có thể xác định quốc gia và khu vực của người dùng qua nhiều đường dẫn
    • Gửi yêu cầu GET tới https://gspe1-ssl.ls.apple.com/pep/gcc để nhận mã quốc gia dựa trên vị trí IP
    • Kiểm tra thiết lập khu vực của Apple Store
    • Có thể tham khảo locale, múi giờ và ngôn ngữ của thiết bị
  • Trên thiết bị có GPS và mạng di động, việc xác định vị trí cũng có thể trực tiếp hơn
    • Vị trí dựa trên tín hiệu GPS
    • Xác định vị trí dựa trên mạng di động bằng cách so sánh MCC/MNC với cơ sở dữ liệu nội bộ
  • Để thu hẹp phạm vi thử nghiệm, một iPad WiFi thế hệ 10 không có chức năng liên lạc di động được sử dụng
    • Cách giả mạo GPS và trạm gốc cũng không phải là bất khả thi nếu tạo lồng Faraday, nhưng sẽ cần nhiều công sức hơn đáng kể

Cách vượt hạn chế thất bại: proxy và mô phỏng vị trí

  • Trước tiên, locale và khu vực được đổi trong cài đặt iOS, rồi lưu lượng mạng của thiết bị được proxy qua laptop để phản hồi từ endpoint định vị địa lý trông như US thay vì IN
  • Tính năng mô phỏng vị trí của Xcode cũng được dùng để thử giả mạo CoreLocation
  • Cách này không hoạt động
    • Do ghim chứng chỉ (certificate pinning), kết nối tới máy chủ Apple bị lỗi trong nhiều ứng dụng và màn hình cài đặt
    • Có khả năng kết nối tới máy chủ Apple cần cho việc kích hoạt tính năng đã bị chặn, nhưng điều này chưa được kiểm chứng hoàn toàn
  • Trong log console có các thông báo khiến tưởng như tính năng lẽ ra phải được kích hoạt, nhưng màn hình cài đặt Hearing Aid thực tế không mở ra

Manh mối lộ ra từ locationd

  • Ngày hôm sau khi kiểm tra lại log, dù đã giả mạo vị trí IP và locale, vẫn xuất hiện thông báo cho thấy thiết bị dường như đang phán định rằng nó không ở Mỹ
  • Các binary countrydlocationd được trích xuất để tìm các chuỗi liên quan
  • Trong locationd, một thiết lập boolean tên AllowSimulatedLocation được tìm thấy, với giá trị mặc định là 0
  • Getter skipUpdatingRegulatoryDomain cũng được phát hiện, và được suy đoán là dùng trong sendUpdateToRDIfAllowed để quyết định có cập nhật miền quản lý hay không
  • Kết luận đạt được là dù mô phỏng CoreLocation bằng công cụ tích hợp của Xcode, việc đó không có tác dụng với phán định miền quản lý của Hearing Aid
    • Có thể điều khiển tính năng Hearing Aid từ macOS, nhưng việc kích hoạt phải thông qua thiết bị iOS
    • Cách sửa binary trên macOS đã tắt SIP để kích hoạt trực tiếp tính năng vẫn là một khả năng, nhưng hướng này không được khảo sát

Cách đánh lừa thông tin vị trí WiFi

  • Thiết bị hiện đại có thể tam giác hóa vị trí ở cấp thành phố bằng cách kết hợp SSID WiFi xung quanh, địa chỉ MAC của router/thiết bị và GPS
  • Lý do iPad chỉ có WiFi vẫn có thể hiển thị vị trí chính xác trong ứng dụng dù không có GPS hay cellular cũng là nhờ định vị bằng WiFi
  • Trong số các cơ sở dữ liệu vị trí WiFi công khai, tác giả đăng ký Wigle và lấy dữ liệu của Menlo Park, California
  • Skylift được fork và chỉnh sửa, rồi ESP32 được cấu hình để phát luân phiên nhanh các SSID WiFi
    • Đây là cách ESP32 mô phỏng môi trường vô tuyến của một khu vực khác
    • Số SSID cần luân phiên được tăng từ 10 lên 100
  • Do có nhiều mạng WiFi thực tế phát ra từ các nhà quanh Lagrange Point, iPad vẫn có thể báo cáo các mạng xung quanh khác nếu không làm suy yếu hoặc áp đảo các tín hiệu này

Thử nghiệm lồng Faraday và lò vi sóng

  • Lồng Faraday ban đầu được làm bằng cách bọc giấy nhôm quanh một hộp bìa carton
  • Bên trong hộp có ESP32 phát các SSID California và iPad; iPad được nối với laptop để xem log console và truy cập Internet
  • Tận dụng việc cả WiFi lẫn lò vi sóng đều dùng băng tần 2,4GHz, một lò vi sóng bị rò được chạy ở công suất tối đa nhằm chặn các tín hiệu mạng dai dẳng xung quanh
  • Một script được cấu hình để sau khi đặt iPad vào hộp, chờ 5 phút, khởi động lại rồi bật mạng
  • Trong lần thử đầu tiên, iPad vẫn được nhận diện là ở khu vực IN, nhưng sau nhiều lần điều chỉnh lồng Faraday, nhiễu từ lò vi sóng và quy trình khởi động lại, thông báo đổi sang khu vực mong muốn đã xuất hiện trong console
  • Sau đó, khi lấy iPad ra và mở AirPods, quy trình thiết lập Hearing Aid lập tức hiển thị

Quy trình có thể lặp lại và kế hoạch kích hoạt hàng loạt

  • Sau khi hoàn tất chứng minh khái niệm, tác giả bắt đầu xây dựng một quy trình tái lập ổn định hơn để mở tính năng cho những người cần
  • Trong vài ngày, thử nghiệm được lặp lại và một lồng Faraday bền hơn được chế tạo
  • Một kế hoạch được lập để vận hành một trại kích hoạt nhỏ tại Lagrange Point cho những người ở Bengaluru có thể được hỗ trợ nếu dùng AirPods như máy trợ thính
  • Việc tham gia hoặc cập nhật sẽ được tiếp nhận qua tài khoản X và luồng tweet

Hoạt động sau khi kích hoạt

  • Tính năng Hearing Aid trông giống như một preset bộ cân bằng âm được đẩy lên AirPods và thay thế chế độ xuyên âm
  • Sau khi kích hoạt tính năng Hearing Aid một lần, cờ tính năng được đồng bộ với tài khoản iCloud
  • Nhờ việc đồng bộ này, người dùng có thể sử dụng tính năng mà không cần lặp lại cùng quy trình trên mọi thiết bị

1 bình luận

 
GN⁺ 2024-11-13
Ý kiến trên Hacker News
  • Tính năng Hearing Aid thực chất là preset equalizer được đẩy xuống AirPods, và có vẻ như nó thay thế chế độ trong suốt
    Nếu Apple không tiếp thị đây là “máy trợ thính” hoặc dùng thuật ngữ y tế thì có lẽ cơ quan quản lý đã không nhảy vào. Các tai nghe true wireless khác có parametric equalizer và chế độ trong suốt cũng có thể làm điều tương tự
    Đổi lại họ sẽ mất lợi thế về marketing, nhưng có lẽ bản thân điều đó đã là một rủi ro lớn được tính toán trước. Những thiết bị như thế này có năng lực xử lý và độ linh hoạt cực lớn. Ngay cả các sản phẩm dưới 10 đô dùng SoC JieLi tai tiếng cũng coi như có một máy tính 32-bit 160MHz trong mỗi tai
    Cũng khá bất ngờ là vẫn chưa có tai nghe true wireless nào quảng bá firmware mã nguồn mở, dù có vẻ cộng đồng Trung Quốc và Nga đã có một số nỗ lực tùy biến

    • Đây là vấn đề lớn hơn nhiều so với cách nói “chỉ mất lợi thế marketing”. Apple không phải hãng duy nhất hoạt động trong chân không, và Sony cùng Bose cũng đang nhắm đến cùng thị trường này, rất có thể sẽ đẩy mạnh marketing theo cách riêng của họ
      Nếu Apple chỉ nói kiểu “nó hoạt động phần nào giống máy trợ thính”, họ sẽ ở thế bất lợi đáng kể trước các thương hiệu khác sẵn sàng dán poster ở vị trí dễ thấy tại điểm bán. Tất nhiên, với bán hàng online hoặc những người không nhất thiết cần độ tin cậy cao, Apple vẫn có thể thắng
      https://electronics.sony.com/otc-hearing-aids
    • PineBuds Pro: https://pine64.com/product/pinebuds-pro-open-firmware-capabl...
    • Cho ai thắc mắc, TWS có nghĩa là “True Wireless Stereo”
      https://audiochamps.com/what-does-tws-mean/
      Tức là tai nghe Bluetooth
    • Cũng có thể họ đang nhắm đến những người dùng FSA/HSA cho chi tiêu liên quan đến y tế
    • Nếu đó là mối lo duy nhất thì còn may. Có vẻ Apple khó có khả năng tắt tính năng này đi
      Tôi từng lo liệu có các vấn đề pháp lý khác như giới hạn âm lượng hay không, nhưng không nghĩ ra cụ thể sẽ là gì
  • Có đoạn nói rằng “vì WiFi và lò vi sóng cùng hoạt động ở băng tần 2.4GHz, họ đã chạy một lò vi sóng bị rò ở công suất tối đa để chặn tín hiệu mạng liên tục trong không khí”, nhưng điều thú vị là WiFi được thiết kế để chủ động tránh kiểu nhiễu này
    Lò vi sóng không phát công suất tại thời điểm điện AC đi qua điểm không, và trong khoảng đó không có tín hiệu vô tuyến gây nhiễu trong không khí. WiFi sẽ nghe trước khi truyền nên cố tránh va chạm với thiết bị khác, và tín hiệu từ lò vi sóng đủ để kích hoạt cơ chế phát hiện này
    Tôi không nhớ liệu lò vi sóng kiểu half-wave tạo ra các khoảng 1/120 giây lặp lại 60 lần mỗi giây, hay chỉ có những khoảng ngưỡng gần điểm zero-crossing nơi công suất quá thấp để gây nhiễu. Ở đây có vẻ khá khả năng là lò vi sóng thực ra không đóng góp nhiều

    • Bất kể phân tích lý thuyết nói gì, ít nhất với một cặp lò vi sóng và router thì tôi đã tái hiện được hiện tượng lò vi sóng gây nhiễu tín hiệu WiFi
      Dù vậy, cũng có những lần khác không thấy ảnh hưởng rõ rệt
    • Tôi tò mò vì sao lò vi sóng lại không phát công suất ở điểm zero-crossing của nguồn AC. Theo thiết kế thì lò vi sóng đang điều chế tín hiệu 2.4GHz lên trên 50/60Hz à?
    • Vậy có nghĩa là hai lò vi sóng bị rò cắm ở các pha điện khác nhau có thể chặn WiFi 2.4GHz sao?
    • Về lý thuyết là vậy, nhưng trên thực tế việc lò vi sóng gây nhiễu WiFi vốn nổi tiếng đến mức còn xuất hiện trên XKCD
  • Có người trên Reddit nói rằng có thể truy cập trực tiếp tính năng kiểm tra thính lực bằng một URL đặc biệt
    x-apple-health://HearingAppPlugin.healthplugin/HearingTest
    Không biết liệu có thể tìm ra deep link tương tự để bật chế độ Hearing Aid hay không
    https://www.reddit.com/r/AirpodsPro/comments/1gftyqo/is_the_...

    • Tôi cũng đã đào vào phần đó nhưng không tìm được gì
      Ở một mức độ nào đó, cách hiện tại đơn giản là hướng tiếp cận dễ hơn
      Chắc chắn phải có gì đó. Apple đã đổi URL handler scheme trong iOS 18, nên những kho lưu trữ cũ từng tham chiếu đến nó nay không còn hoạt động nữa
  • Tôi là Rithwik, một trong các tác giả bài viết. Nếu có câu hỏi tôi sẵn sàng trả lời

    • Đây thực sự là một bản hack rất ngầu và tôi đã rất thích khi đọc nó. Nếu phải hỏi một câu thì tôi muốn biết tiếp theo bạn định làm gì với lồng Faraday mới tạo này
    • Cách xử lý vùng miền hơi khó hiểu. Tôi có iPhone mua ở Canada, tài khoản Apple Canada, thẻ tín dụng Canada và địa chỉ thanh toán Canada, App Store cũng đặt là Canada, nhưng tôi đã sống ở Tây Ban Nha vài năm nay
      Theo tiêu chí của Apple thì tôi vẫn hoàn toàn là “người Canada”. Tôi không hề thấy các tính năng App Store bên thứ ba bị giới hạn theo EU, nhưng lại có thể truy cập các tính năng như Apple Intelligence vốn không dùng được ở EU
      Tính năng trợ thính không có ở cả Canada lẫn Tây Ban Nha nên tôi không thể thử, nhưng tôi tò mò giới hạn vùng của tính năng trợ thính khác gì so với các tính năng khóa vùng/kích hoạt theo khu vực khác của Apple
    • Bài viết rất hay. Việc cho thấy có thể hack hành vi ứng dụng iOS một cách khá casual như thế này tạo cảm giác như thuộc về một thế giới hoàn toàn khác, nhất là vì tôi vẫn nghĩ iOS bị khóa khá chặt
      Tôi muốn biết bạn bắt đầu như thế nào, có tài liệu nào đáng giới thiệu không. Và vì bạn nói rốt cuộc mình không mua loại tai nghe cực đắt đó, tôi cũng tò mò bạn thực sự đang dùng hoặc muốn mua tai nghe nào
    • Đây là một bản hack thực sự rất ngầu. Tôi hơi bất ngờ khi hóa ra còn phải giả mạo mạng WiFi nữa, nhưng việc cuối cùng tìm ra được vẫn rất ấn tượng
    • Tôi rất thích đọc bài này. Tôi tò mò không biết ông bà của bạn hài lòng đến đâu với tính năng trợ thính. Nó có hoạt động tốt trong thực tế không, và thời lượng pin thế nào?
  • Tôi thắc mắc không biết thiết lập này có bị đặt lại sau một khoảng thời gian hay không, hay chỉ cần làm một lần là xong
    Tôi lo rằng iPad hoặc AirPods sẽ tự nhận ra chúng đã ở Ấn Độ quá lâu và gỡ tính năng này đi

    • Tôi là một trong những tác giả bài viết. Đây là thiết lập chỉ cần làm một lần
      Khi tính năng được kích hoạt, một cờ sẽ được đặt trong tài khoản iCloud nên nó vẫn tiếp tục hoạt động dù bạn đi đâu. Đồng thời, một hồ sơ EQ sẽ được đẩy vào chế độ xuyên âm của AirPods để bật chức năng máy trợ thính
      Khi đã xong thì nó sẽ được giữ nguyên trừ khi bạn đặt lại AirPods
      Tuy vậy có một điểm bất thường khá thú vị. Tôi đã kích hoạt tính năng này trên AirPods của người khác, nhưng nếu trên thiết bị hoặc tài khoản của người đó tính năng không ở trạng thái “có sẵn”, thì họ không thể tự điều chỉnh cài đặt trên thiết bị của mình
  • Trường hợp này cho thấy rất rõ vì sao phần mềm tự do lại quan trọng. Khóa theo khu vực ở đây là một thực tiễn thù địch hoàn toàn vô lý
    Nếu phần mềm hoặc firmware là tự do và mở, người ta đã có thể vá để gỡ hoặc vô hiệu hóa khóa vùng. Thậm chí rất có thể ngay từ đầu đã không có hạn chế như vậy

    • Trong trường hợp thông thường thì giới hạn theo khu vực là hợp lý
      Ở các quốc gia đã phê duyệt, cơ quan quản lý hẳn phải cấp phép cho đây là một thiết bị hỗ trợ y tế. Nếu các thiết bị hỗ trợ y tế và những thứ tương tự có thể được bán mà không cần phê duyệt, thì những thứ thực sự có thể làm bị thương hoặc giết người cũng có thể bị bán dưới danh nghĩa thiết bị hỗ trợ y tế
      Vấn đề ở đây là trường hợp này trông giống một tính năng hỗ trợ vô hại nên việc cấm nó có vẻ buồn cười. Nhưng nếu quy định không được áp dụng nhất quán thì nó sẽ chẳng còn tác dụng gì
      Rốt cuộc, có thể là cơ quan quản lý ở các nước khác quá chậm, hoặc tệ hơn là Apple chưa hề nộp đơn xin phê duyệt
  • Tôi thắc mắc có ai biết chính xác chế độ Hearing Protection thực sự làm gì không. Nó không được cung cấp ở Na Uy và ngoài Bắc Mỹ
    Trước đây tôi cũng từng dùng AirPods Pro 2 để bảo vệ tai và nó hoạt động khá tốt. Tôi không rõ đây chỉ là vì cụm từ “Hearing Protection” chỉ được phép dùng tại Mỹ, hay là nó thực sự tốt hơn tính năng khử tiếng ồn thông thường của Pro 2

    • Rất có thể thứ mới xuất hiện chỉ là ứng dụng kiểm tra thính lực và phần marketing. AirPods vốn đã có sẵn các tính năng này
      Nghe cách Hearing Protection hoạt động thì nó giống như nén đa băng tần, tức là chia dải tần số nghe được thành nhiều băng và áp dụng nén riêng cho từng băng. Nhưng có vẻ điều này trước đó cũng đã được làm rồi
  • Tôi thắc mắc liệu cái này có thực sự khác với chế độ xuyên âm tùy biến trong Trợ năng vốn đã có từ trước khi công bố tính năng máy trợ thính hay không
    Nó có thể dùng thính lực đồ được lưu trong ứng dụng Sức khỏe. Chỉ là chế độ xuyên âm tùy biến nghe khá tệ, kiểu như hiệu ứng lược

    • Đúng vậy. Có vẻ không khác. Tôi đã dùng tính năng đó từ tháng 3
  • Thật tuyệt vời. Chúng tôi đang làm một lồng Faraday cỡ bằng phòng thay đồ walk-in ở i3Detroit. Tất nhiên vì ở Mỹ nên chúng tôi không cần nó cho chính bản hack này, nhưng có một cái thì có vô số lý do thú vị
    Lý do lớn nhất là ngay gần đó có máy phát WOMC với EIRP 135.000 watt. Nó chui vào đủ loại thiết bị và khiến việc đo các tần số vô tuyến khác trở nên khó khăn. Khi làm những việc như căn chỉnh bộ khuếch đại, tốt hơn là phải nắm chắc phần cơ bản trong một môi trường yên tĩnh trước rồi mới thêm các nguyên nhân tiềm ẩn như nhiễu xuyên điều chế
    Bạn cũng có thể debug thiết bị không dây như WiFi, Bluetooth, v.v. mà không có vô số nút xung quanh. Có thể lọc ở đầu ra của sniffer, nhưng lọc ngay từ đầu vào thì vui hơn
    Bạn cũng có thể dựng mạng di động 1G hoặc 2G mà không phải lo giấy phép tần số. Cũng có thể luyện các kỹ thuật WiFi mạnh tay có thể gây ảnh hưởng đến mạng hiện có của hackerspace
    Có thể nghịch GPS spoofer trong vùng không có FCC, hoặc làm những thí nghiệm thú vị một cách có trách nhiệm. Cũng có thể nhốt iPhone vào trong để xem nó có tự khởi động lại hay không

    • Đúng vậy. Nghĩ lại thì thật ngạc nhiên là đến giờ tôi vẫn sống mà không có lồng Faraday
      Tôi cứ ngứa ngáy muốn đặt thiết bị vào trong đó rồi bơm đầy sóng vô tuyến vào không khí bên trong mà không phải lo chuyện giấy phép
      Tôi từng thấy một lồng Faraday kích thước thật ở Indian Institute of Science, và thấy khá vui vì cách tiếp cận cũng như cấu trúc của họ giống với bên chúng tôi
  • Trong trường hợp này, có vẻ ngay cả certificate pinning cũng sẽ khá dễ xử lý. Chỉ cần dùng proxy hoặc VPN là được. Dù sao thì màn lồng Faraday này cũng rất ngầu

    • Có lẽ cần giải thích VPN giải quyết vấn đề certificate pinning như thế nào. Tác giả vốn đã sửa đổi lưu lượng HTTP/S của iPhone thông qua kết nối mạng được proxy, và theo tôi biết thì VPN không giúp giả mạo một phản hồi HTTPS hợp lệ với chứng chỉ máy chủ đã bị ghim sẵn
    • Cuối cùng thì đó đúng là việc chúng tôi đã làm. Chúng tôi dùng VPN thương mại và cấp Internet cho thiết bị qua cáp USB
      Có lẽ dùng Tailscale trên một VPS nào đó cũng được
    • Tôi không hiểu vì sao dùng VPN lại khiến việc tự thực hiện tấn công man-in-the-middle lên chính mình để sửa phản hồi của yêu cầu GET đó trở nên dễ hơn