SIM-карта обычно считается частью системы, связанной с модемом, и из-за этого многие производители наборов микросхем (qualcomm, samsung, mtk, Broadcom...) имеют код, обрабатывающий ее в процессоре основной полосы частот.
Процессоры основной полосы имеют проприетарный код, они обычно работают на ОС arm9 arch RT, а способы доступа Android к данным sim уникальны для разных устройств/чипсетов. Однако большинство из них используют вызовы XDR/RPC от процессора Android к процессору основной полосы частот.
Большинство материалов для Android довольно хорошо объяснено здесь
Broadcom это путем реализации интерфейса в драйвере ядра, который доступен для /dev/bcrm_kril и позволяет пользовательскому пространству отправлять прямые команды в sim. А затем XDR в основную полосу
Qualcomm предпочитает сохранять его более проприетарным, они реализуют только интерфейс RPC в ядре, они называют его ONCRPC и выставляют его через жестко запрограммированную точку входа драйвера.
Ex. /dev/oncrpc/30000016:d6bb93e6
Затем собственные библиотеки пользовательского пространства отправляют закодированные команды, просто в этом случае у них нет прямого доступа к сим-карте. IE android отправляет RIL_REQUEST_GET_IMSI и получает точный ответ, содержащий IMSI.
person
skoperst
schedule
28.01.2014