телефон это набор модулей, которые реализованы микросхемами, причем вариантов реализации - несколько, эти разные реализации прикрыты драйверами которые сводят их к одному более-менее стандарту работы с железом, т.е. телефон минимально должен уметь через драйвера подавать команды в эти модули и считывать ответы,
в теории это можно написать самому (в теории, потому что никто из производителей закрытые интерфейсы просто так не откроет) + надо знать протоколы 3gpp (это тысячи спецификаций) чтобы понимать последовательности команд и что делать в конкретной ситуации, даже просто зарегистрироваться на вышке с десяток запросов послать придется