Как сделать схему телефона

Обзор приложений на платформе Android для построения диаграмм и блок-схем

a04fe884b0e01a1f28ba0a58cfeb0202

16856409ac9639e22ec65e470bb51c30

DroidDia

Бесплатная версия – есть (DroidDia prime), ограниченный функционал.

Предполагается создание блох-схем, организационных структур, графиков, интеллектуальных карт, карт веб-сайтов и многое другое.

Ограничения бесплатной версии –

5a2fde8bc205d12a712de0095c0b8bb7b284853cc457c094c8d236556b82d489

DrawExpress Diagram

Бесплатная версия – есть

Полная версия – 180,23 руб.

Предполагается создание блох-схем, организационных структур, графиков, интеллектуальных карт, алгоритма принятия решения.

Ограничения бесплатной версии –

572a71e0474cf3fa7bf576f6cb9ad7bd51896cdb2cfba276f19461cf34bc37ba

Lekh Diagram

Программа содержит рекламу, чтобы отказаться от нее необходимо произвести одноразовый платеж в размере 102,60 руб. напрямую через программу.

45979c216390edea05776673d6ee7373afd304ae70dae7ae00d64611a6582869

Smart Diagram

Бесплатная версия – есть

Полная версия – 132,71 руб.

Дополнительные возможности полной версии –

07b12a7d35873a111ad2dfcc9c3687aa5576dd30966d0bfba5208fab8a1e8160

TouchDraw

Бесплатная версия – нет

Полная версия – 284,00 руб.

cb03a5ce8929e19b92c2c5fc58a4b5c52a5b92543b991b7a05bc25520abb6508

Flowchart Editor

Бесплатная версия – есть

Полная версия – 30,00 руб.

Ограничения бесплатной версии –

Дополнительные функции полной версии –

9834af6a458ea1073abfa6760bb2fb9675cbda15cf20d825edb9d5fe6db7ab87

Oqto Diagram

Бесплатная версия – есть

Полная версия – 192,47 руб.

Ограничения бесплатной версии –

dbfa0735a034f67ef37bfc9fd9a39a651817cb9bfa6c4f110c8367e8f62829f3

NodeScape

Бесплатная версия – есть

Полная версия – 64,43 руб.

Особенности бесплатной версии –

d38df1fa7f8f6f33cfb2b46564d70b6e0be16d095041011439ff81a538bdbd10

Diagrams.me

Бесплатная версия – нет

Diagrams.me Pro – 199,00 руб.

Diagrams.me Sketch – 153,23 руб.

452ad955b5411bff379054519e59434b6794f0612729e6e9865f60ad4480e783

Polydia (Diagram/Graph Editor)

Бесплатная версия – нет

Полная версия – 199,99 руб.

Источник

Без слежки и закладок. Как собрать свой мобильник и почему это проще, чем кажется

gabstract h

Содержание статьи

Все началось с того, что некоторое время назад я собирал для себя телефон на модуле связи GSM. Современная электроника была размещена в винтажном корпусе с внешней трубкой и дисковым номеронабирателем (помнишь ли ты еще, как ими пользоваться?). Увы, из-за непродуманной схемы звонить с него было неудобно.

Тогда я решил предпринять вторую попытку, но уже с новой концепцией. Хотелось создать компактное устройство, выполняющее функции простого кнопочного телефона и при этом пригодное к практическому использованию. В идеале заряда даже от небольшого аккумулятора должно хватать минимум на неделю. Никаких лишних сервисов, подозрительных приложений и надоедливых уведомлений, только самое необходимое — звонки, SMS и телефонная книжка.

Проект демонстрировался на Chaos Constructions 2019 и, к моему (приятному) удивлению, вызвал интерес у широкой аудитории. Многим было любопытно узнать внутреннее устройство мобильного телефона, поэтому сегодня я подробно расскажу, как можно собрать подобный гаджет самостоятельно.

WARNING

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

Блок-схема компонентов

Сперва определимся с требованиями к устройству: нам нужно совершать исходящие звонки, принимать входящие, читать и писать SMS (в том числе на кириллице) и управлять контактами в телефонной книге. Это базовая функциональность, которую пользователи ожидают от кнопочных телефонов. Конечно, это далеко не полный список и тут не хватает как минимум встроенных игр (змейки или тетриса), но их легко будет добавить уже на финальном этапе.

Ключевым компонентом устройства станет модуль сотовой связи SIM800C. Он содержит полный радиотракт, аудиотракт и реализует основные функции работы с сетью GSM. Иными словами, это практически готовый мост GSM-UART, который нуждается лишь в управлении через внешний терминал.

Для этого нам потребуется экран, клавиатура и какой-нибудь микроконтроллер для выполнения основной программы. В качестве экрана я использовал дисплейный модуль ST7735 с разрешением 128 на 160 пикселей. К нему у меня уже была готовая библиотека, которая позволяла отрисовывать символы и графические примитивы. По большому счету выбор дисплея некритичен для проекта, и ты можешь использовать любой другой с подходящей диагональю.

Клавиатура с шестнадцатью кнопками реализована на сдвиговых регистрах (пара восьмибитных микросхем 74HC165 (PDF). Также ты можешь использовать их отечественный аналог — микросхемы компании «Интеграл» КР1533ИР9. В любом случае выход таких регистров представляет собой неполноценный SPI, так как даже при отключении они не переходят в высокоимпедансное состояние. Поэтому вместо аппаратной и совмещенной с дисплеем шины SPI для них использовалась программная реализация.

Управлять всем будет микроконтроллер семейства STM32. Так как особого быстродействия не требуется, подойдут даже бюджетные решения. Я остановил свой выбор на F103C8T6 (PDF), его ресурсов тут должно хватить с избытком. Кроме того, именно на таком микроконтроллере выпускается известная модельная линейка отладочных плат BluePill (прекрасное средство для избавления от Arduino-зависимости). Это позволило собрать прототип и протестировать работу компонентов практически с самого старта.

Некоторые микросхемы F103C8T6 имеют 128 Кбайт памяти вместо заявленных по документации 64 Кбайт. Однако это относится к недокументированным возможностям, и рассчитывать на «лишний» банк памяти не стоит.

Позже (и в качестве приятного бонуса) я решил добавить в проект внешнюю постоянную память W25Q32 (PDF) на 32 Мбит. Это позволило не перезаписывать флеш самого микроконтроллера и хранить все контакты отдельно. Кроме того, появилась возможность загружать на телефон картинки, символы и прочие элементы растровой графики.

Сама схема мобильного телефона достаточно стандартная и в комментариях вряд ли нуждается. SIM800C включается при подаче низкого уровня на вывод REST (используется транзистор Q1, соединенный с контактом PA0 микроконтроллера). Дополнительно светодиоды VD2 и VD3 указывают на состояние радиомодуля. VD2 мигает при успешном подключении, тогда как VD3 горит все время, пока SIM800C активен.

telephone Принципиальная схема устройства

Компоненты размещены на двух односторонних печатных платах, преимущественно поверхностным монтажом. Первая плата содержит радиомодуль, микроконтроллер, микросхему внешней памяти и разъемы для подключения антенны и динамика. Вторая плата целиком и полностью отдана под клавиатуру. Собранная конструкция помещается в корпус из оргстекла и закрепляется на стойках М3.

Питается наше устройство от литий-полимерного аккумулятора на 1500 мА · ч. Его емкость примерно в два раза ниже, чем у современных флагманских смартфонов, но и ее хватает примерно на неделю в режиме ожидания (потребление около 6 мА) или на сутки активного пользования (потребление около 40 мА).

Вообще говоря, большая часть использованных электронных компонентов сейчас доступна в виде готовых оценочных плат или модулей. Поэтому, если тебе не хочется возиться с разводкой плат и пайкой микросхем, ты можешь собрать все на беспаечных макетках.

Настраиваем UART

Сегодня существует масса вариантов для программирования микроконтроллеров. Это и различные языки (С/С++, Rust), и самые разнообразные прикладные библиотеки, абстрагирующие разработку от аппаратного уровня (HAL от ST Microelectronics, Arduino Core и другие). Я использовал в проекте каноничный C и открытую libopencm3.

Полный комплект исходных файлов проекта доступен в репозитории на GitHub.

Первым делом следует инициализировать UART1, ведь именно он отвечает за общение с радиомодулем. Параметры стандартные: 115 200 бод и 8N1.

Работа с экраном

Как и любую другую периферию, дисплей перед использованием предстоит инициализировать. Конечно, сегодня подходящий код можно найти и в интернете, но я решил написать реализацию самостоятельно. Это не отнимет много времени, зато позволит лучше узнать возможности микросхемы ST7735. Я ориентировался на документацию (PDF) производителя и брал за основу готовые примеры в псевдокоде.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

Candidum

Check Also

Android: колбэки, корутины и бенчмарк отладочной сборки

Сегодня в выпуске: разбираемся с проблемами при использовании корутин в Kotlin, превращаем…

13 комментария

Artem Kashkanov

SIM800 Сам по себе содержит внутри весьма жирный микроконтроллер с приличным API, в который можно засунуть весь описанный здесь функционал. Мануалы все есть, IDE — тоже.
Подключаем матрицу кнопок к уже имеющимся выводам матричной клавиатуры, дисплей к уже имещимся на моделй выводам SPI и радуемся жизни максимально с простым девайсом.

Все собирается на базе стандартного модуля GSM, какая же это защита от контроля и прочего? Модули GSM это некий черный ящик, что он делает, как он делает, никому не ведомо. Такой телефон защищен не лучше чем обычный кнопочный. Для того что бы телефон защищал необходимо что бы он вел себя не стандартным образом хотя и в рамках стандарта 🙂 Но для этого необходимо иметь возможность работать с самим GSM модулем.
Например так:
Телефон невидимка является уникальным телефоном, и аналогов ему нет.
Сделан на базе телефона Samsung C6112
Телефон невидимка предназначен для защиты:
— от активных и полуактивных комплексов перехвата
— от кетчеров
— от контроля со стороны оператора связи (в значительной степени)

· Основная особенность телефона — работа в не стандартном режиме, чего не ждет ни оператор связи, ни оператор комплекса.
· Телефон рассчитан на обнаружение комплексов перехвата и кетчеров которые работают непосредственно по нему.
· Несмотря на то, что телефон работает только в стандарте 2G, он обнаружит любые самые современные комплексы перехвата или кетчеры, работающие в 2G 3G 4G, просто потому что для захвата телефона, они будут вынуждены перейти в стандарт 2G.
· Телефон может обнаружить комплексы, работающие в 2G стандарте, которые находятся не далеко от него, ещё до захвата.
· Телефон может быть полностью невидим для кетчеров или комплексов.
Кетчер или комплекс перехвата не смогут получить реальные IMSI TMSI IMEI, они получат случайно сгенерированные значения
При этом телефон видит, что его пытаются захватить и выдает предупреждения.
Таким образом телефон делает бесполезной и бессмысленной покупку дорогостоящих комплексов перехвата и кетчеров.
Более того, использование комплексов может быть вредным, потому что оператор комплекса получит не достоверную информацию.
· Телефон может быть полностью невидим как для пинговых СМС так и для обычных СМС. Таким образом, его не смогут пинговать комплекс перехвата, оператор связи, а так же по SS7.
· Телефон гарантированно обнаружит все типы пинговых СМС, обнаружит пингование звонками.
· Телефон контролирует поступление информации на СИМ карту и не допустит возможности установить на неё вредоносный код. А если он уже там находится, то не даст ему работать.
Именно СИМ карта является одним из важнейших уязвимых мест в безопасности современного телефона.
· Автоматически смена IMEI на случайное значение. Пять режимов работы
· Телефон позволяет помочь в локализации места работы комплексов перехвата и кетчеров. Поэтому для операторов комплексов и кетчеров использование оборудования для захвата телефона невидимки может быть не безопасно.
· Телефон позволяет работать с удалённых каналов. В то время как комплекс, для захвата телефона, будет стараться создать самый сильный канал, телефон его проигнорирует.
· Телефон проигнорирует и завышенные параметры комплекса или кетчера. Но предупредит об их наличии.
· Телефон сможет гарантированно определить комплекс перехвата даже при условии, что оператор комплекса установил все параметры, на все 100%, как у настоящей БС.
· Телефон предупредит не только о захвате комплексом, но и о том, когда комплекс его отпустил во внешнюю сеть, и покажет, сколько времени он был захвачен.
· Телефон гарантированно определяет, кем он был захвачен, комплексом перехвата или кетчером.
Если захват был сделан кетчером то телефон мог попасть в зону его работы случайно. Потому что кетчер собирает данные обо всех телефона вокруг него. А вот комплекс работает, как правило, целенаправленно.

· В телефоне все настройки могут быть включены или выключены, а так же есть профили, выбор которых определяет поведение телефона. Например, телефон может быть настроен на максимальную защиту, а может только предупреждать об опасности, при этом не мешая себя захватить, что бы оператор комплекса мог получить дезинформацию.
· В телефоне сделано МЕХАНИЧЕСКОЕ отключение микрофона. Пока телефон сложен — микрофон нельзя включить никаким образом. Телефон обнаружит включение передатчика, в то время как пользователь не использует телефон.
· Телефон позволяет отправлять шифрованные СМС на такой же телефон.
· Телефон гарантированно обнаружит пингование пейжинговыми сообщениями.
После этого в зависимости от настроек он может:
— просто выключить передатчик и предупредить сообщениями
— выключиться
— СОЗДАТЬ СВОЙ КЛОН и после этого отключиться. Для этого необходим дополнительный телефон на расстоянии 500 метров в стороне от вас.
Это необходимо для того, что бы ваш телефон не смогли найти «до квартиры» с помощью специального оборудования, которое работает либо совместно с комплексом перехвата либо с оператором связи.
· Поскольку в телефоне содержат реально два почти независимых телефона то есть возможность автоматического включения одного из них в заданной пользователем задержкой..
· Телефон обнаружит фейковые СМС с подменой номера.
· Телефон позволит узнать — находится ли нужный абонент в сети, без демаскирующих признаков на телефоне абонента.
· В телефон встроен сервис:
подмены номера, искажения голоса, невозможность определения места положения телефона, безлимитные звонки по всему миру, привязка к железу телефона, а не к СИМ карте. Таким образом СИМ карты могут быть всегда местные и не выделяться из общего потока, а менять их можно сколь угодно часто.
Запрос на звонок идет в шифрованном виде и не может быть расшифрован. Так же предусмотрена возможность работы через СМС шлюз, если в телефоне нет настроек GPRS.
· Телефон может работать в составе телефонного моста. Для того, что бы не только скрыть место положения владельца телефона но и наоборот — обозначить его именно там где это необходимо.
Таким образом, владелец телефона может находиться за границей, а те кто его контролируют, будут видеть что он дома.
· Телефон может вести запись разговоров.
· Телефон работает на закрытой операционной системе, которая не позволяет писать вредоносный код. Компания Samsung не сможет написать вредоносный код и внедрить его в телефон невидимку.

Описан не полный перечень функций телефона.

int01h

Эти телефоны стучат своим создателям. Старые версии слали смски, победить можно было только убрав номер смс центра из настроек трубки. В современном варианте хз чего еще туда напихали. В любом случае, хотите защититься от терминалинга, наблюдения и зондирования — выбросите телефоны нафиг. Все остальное, так или иначе, строится на доверии. Кто-то доверяет гуглу, другие доверяют таким вот производителям. Один наркобарон додоверялся шнырю фбровскому, теперь на киче отдыхает. Лучше исходить из того, что даже себе, в сложной обстановке, не стоит доверять и уменьшать риски, а не множить их очередным черным ящиком.

вы правы, на G600 так была сделана защита от копирования, это не было для получения информации о пользователе. СМС шла с родным для телефона ИМЭЙ и тот имэй который уходил реально оператору никак не светился. В последующих версиях G600 это убрали сделав другую защиту ( которую так никто и не сломал). В С6112 отправки производителю чего либо о телефоне не было даже в самых первых версиях. Просто поверьте, я знаю о чем говорю. Это кстати легко проверить по распечатке своей же СИМ карты.
Выбросить телефоны совсем уже не просто. Но кстати в С6112 — оснавная функция это не защита а предупреждение что у пользователя начались проблемы, и в этом смысле выбросить телефон — аналогично страусу головой в песок ( к слову сказать он так и не делает вовсе 🙂 ) Тут наоборот, нужен телефон что бы понять о существовании опасности. Хотя конечно телефон защищает пользователя. Чего стоит невидимость для кетчеров и комплексов.

int01h

Вы видимо разработчик или как-то с ними связаны. В таком случае, скажу две вещи:
1. Вы молодцы. И как продукт, и как исследовательская работа — подход очень интересный. НО.
2. Повторюсь — нужно кому-то доверять, а в данном случае разработчикам нового софта телефона.

Сами понимаете, обычная логика — чем вы отличаетесь от тех, кому уже доверяют не имея возможности досконально проверить весь функционал? Например, защита от копирования в г600. Благое дело для защиты наработок, но дырень в «конспирации» при рандоме имея и новой симке. Допустим, это все происходило только в случае хитрых барыг, которые накатывали ваш код на сторонние трубки. Но это незадекларированный функционал, о котором уже нормальный клиент не знает, а он есть. Как считаете, это оправдывает доверие юзера к производителю? Просто с позиции клиента оцените похожую ситуацию.

Я понимаю, что вашим клиентам это может быть и не нужно, замороченных мало. Но конспирация — это не про телеграммных барыг, испуганных бизнесменов, экспериментирующих технически малограмотных оперов и тех кто на рандомном имее с новой симкой связывается со старыми установленными контактами. Но эта проблема доверия черному ящику не уйдет сама по себе. А отказ от телефона — это не про страуса и бетон 🙂 Всегда есть альтернативы. Один из основных принципов вы уже назвали — нестандартное поведение. А также нестандартное использование привычных вещей. Кроме всего прочего, от обычных телефонов и голоса в них, тем кому важна анонимность, нужно отказываться еще и благодаря успехам ЦРТ (Центр Речевых Технологий).

Да, чуть не забыл. Говоря о терминалинге, это справедливо, что телефон может предупредить о наблюдении. Но не со всеми девайсами 🙂 У трехбуквенных фазанов часть терминалов не палится почему-то. Принцип работы похожий на остальные, но стабильно на них нет реакции. Спросите у разработчиков — это тоже защита от копирования?)

я и есть разработчик 🙂 комплексы и кетчеры видятся все, не зависимо от того кто их использует. Производители комплексов одни и те же в основном, стандарт один. Сейчас на С6112 сделана опция когда ( а такого в природе не бывает) оператор комплекса выставит все параметры соты один в один, хотя для него захватить в этих условиях становится намного сложнее, к тому же телефон должен перерегистрироваться, а это отличные от оригинальных параметры. Так вот, параметры один в один а телефон гарантированно определит что это комплекс. Так что «фазанам» ничего не светит. Но я сталкивался с тем что активно работают и частные структуры из бывших. Так вот повторюсь, и это очень важно, пусть центр речевых, пусть старые контакты — важно что они работают стандартным образом и палятся по полной, когда идет атака на телефон, именно это и требовалось. Хотя опять же повторюсь защиту сейчас наворотили очень сильную, но это дело второе. И разговор идет о С6112, G600 последний раз обновлялся осенью 2014 года

int01h

В случае с фазанами есть еще СОРМ и другие методы ОРМ. Терминалы используют в поле, и г600 пропускал их девайсы, тесты были в 14-15 году, но не на последней версии прошивки точно. Справедливости ради, С6112 я не тестил, не знаю как там теперь все у вас.

Насчет голоса и контактов — в РФ это как раз очень важно, постоянно так причесывают доморощенных бандосов, даже во времена ФСКН по контактам били. Не знаю как в Украине или других странах, где возможные тесты были, но в России ситуация иная. Я уже давно не в курсе новых практик и разработок, но помимо общих стандартов, в РФ велись разработки собственных терминалов. Которые не уходят на эскпорт, да и внутри не продаются и не поставляются даже БСТМ МВД. Я не знаю какие конкретно девайсы пропускал телефон, думаю, что на тот момент какие-то стандартные, немецкие скорей всего.

В поле как и в случае с комплексом такой признак как один канал ( нет соседей) не работает, а в случае когда в составе комплекса есть обработчик А5.1 сводит на нет обнаружение в случае G600. Хороший комплекс мог и не существующих соседей давать телефону. Поэтому сравнивать G600 и С6112 нельзя. То что в России делают сами, так это было с самого начала появления комплексов, и те что продаются по миру сделаны «нашими» а те что делаются только для внутреннего потребления никакими волшебными свойствами не обладают. Все стандартно как и сам стандарт GSM. Конечно по мере использования комплексов появлялись какие то новые методы работы но мы в телефоне все это отслеживаем и делаем то что сводит покупку комплексов и кетчеров на нет.

кстати, часть функционала проверить можно не имея комплекс, часть ( основная) конечно оборудование необходимо. Но у нас есть возможность тестировать телефон в другой стране

Asylum

Не проще сделать программный телефон на удаленном сервере? Поскольку эта поделка использует сим карту, сомневаюсь что тут будет какая то анонимность. От фиксации в соте никуда не уйти. Так что район будет точно определен. Детсво, в жопе, если коротко

Joe Trebiani

+100500 в части про детство. в эру GoIP и многочисленных сервисов…

Laglag

слышал про бесимочные телефоны…

спасибо за статью
как понимаю это на ардуино можно все собрать?

Candidum

Можно и на ардуино, можно и вовсе без микроконтроллера (см 1. комментарий).

Источник