Почему в Android нет Мастера установки оборудования? [закрыто]

Если я хочу установить Windows, скажем, на Thinkpad X1 Carbon без операционной системы, я могу купить Windows и установить ее. Windows включает множество драйверов. Если отсутствуют какие-либо необходимые драйверы, я обычно могу получить их у производителя, использовать мастер установки оборудования и установить их.

Но если я хочу установить Android 6.0 «Marshmallow», скажем, на Samsung Galaxy S Relay 4G, то все не так просто. Это правда, что я мог бы (теоретически) загрузить и установить какой-нибудь случайный ПЗУ Nexus, поставляемый Google. Но такое ПЗУ включает в себя гораздо меньше драйверов и фактически может вообще не позволить моему телефону загрузиться. И нет пользовательского интерфейса для загрузки и установки подписанных драйверов, загруженных с веб-сайтов производителей оборудования.

Почему в Android нет мастера установки драйверов?

И как Android справляется с устройством USB On-The-Go («USB OTG»), если он не знает, как взаимодействовать с этим конкретным устройством USB OTG?

Пользователь Stack Overflow « eski » добавил в чате Stack Overflow: «Поскольку Android является открытым исходным кодом, ответом на ваш вопрос может быть просто «никто еще не успел». Или «вы еще не успели».
Samsung (да и вообще все OEM-производители) заинтересованы в том, чтобы ваше устройство устарело как можно быстрее, поэтому вы покупаете новое. Они не получают никаких денег, когда вы делаете обновление ОС, поэтому они не заинтересованы в его поддержке.
Потому что вы не можете добавить аппаратное обеспечение к телефону...
У меня недостаточно информации, чтобы сделать из этого хороший ответ, поэтому я просто оставлю его здесь: Мастер установки оборудования — это функция Windows. ОС Android основана на Linux. Microsoft поддерживает базу данных драйверов, которая обеспечивает работу их мастера. Поскольку Linux разрабатывается сообществом, единого репозитория не существует. Кроме того, каждая модель Android технически работает под управлением другой ОС, а устройство с пользовательской прошивкой работает под управлением другой ОС, чем стандартное устройство. Драйвер, работающий на одном устройстве, может не работать на другом.
@immibis: Конечно, вы можете добавить в телефон аппаратное обеспечение. Вы можете добавить его с помощью USB On-The-Go , Bluetooth, инфракрасного порта или SDIO .
Я голосую за то, чтобы закрыть этот вопрос как не относящийся к теме, потому что он касается дизайнерских решений — вопросов для Google, а не для нас.
@MatthewRead: хорошо. И все же было бы неплохо, если бы вопрос мог остаться на сайте. На самом деле, есть ли значительный риск того, что этот вопрос может быть удален через некоторое время?

Ответы (2)

  1. На настольных компьютерах и ноутбуках драйверы являются необходимым злом. Аппаратное обеспечение часто обслуживается пользователем и подвержено изменениям, и существует огромное количество возможных комбинаций. На телефонах и планшетах это не совсем так. Вы не можете легко изменить оборудование. Совершенно безопасно запретить установку драйвера, так как он вам на самом деле не нужен.
  2. Устройства ARM сломать намного проще, чем x86 с испорченными драйверами.
  3. Драйвера на Андроид надо писать под конкретные версии ядра и все. Это легко сделать производителю, но трудно сделать правильно пользователю.
  4. Большинство устройств USB On-The-Go представляют собой интерфейсы USB, для которых прилагаются драйверы.
  5. Для установки драйвера требуется root-доступ, который по умолчанию отключен на подавляющем большинстве устройств Android.
  6. Разрешение на установку драйверов открывает широкие возможности для установки руткитов и других вредоносных программ. И действительно, такое вредоносное ПО может сохраняться при очистке устройств и обновлении прошивки.

Скорее всего, мы увидим какую-то установку драйверов, если Project Ara взлетит. Но я предполагаю, что это будет похоже на то, что каждый компонент загружает свой драйвер и устанавливает его при подключении, в отличие от разрешения установки произвольных драйверов, найденных в Интернете.

2. кажется произвольным. Также это больше зависит от механизмов изоляции, которые предоставляет операционная система, если низкокачественный драйвер «сломает» ваше устройство.

По тем же причинам в телефоне с Windows нет «Мастера установки оборудования».

  1. К телефонам предъявляются более строгие юридические требования, чем к обычным ультрабукам/ПК. В США, например, есть служба экстренной помощи 911/геолокация, оповещения Amber, оповещения о цунами/торнадо/аварийных оповещениях (которые могут включить телефон, когда питание отключено) и предположительно бэкдоры АНБ (по словам Сноудена). Кроме того, существует реальная вероятность того, что на производителя могут подать в суд, если люди погибнут из-за неисправности сотового телефона. Отчасти это может объяснить тот факт, что код сетевого радио часто представляет собой просто бинарный блоб (несмотря на то, что активисты открытого исходного кода, такие как Ричард Столлман, очень недовольны этим).

  2. Телефоны традиционно были дойной коровой для операторов связи и поставщиков контента (или даже для Apple). Это причина, по которой индустрия, лобби по защите авторских прав и правительство / Библиотека Конгресса даже не хотят, чтобы у вас был root-доступ к вашему собственному телефону (если только вы не получили явное разрешение от своего оператора / производителя). Другими словами, у вас нет собственного телефона. Они владеют вашим телефоном. Это также является одной из причин того, что на смартфонах нет «Мастера установки оборудования». Наличие root-доступа обычно связано с ответственностью за безопасность всего на вашем собственном устройстве (даже при установке новых драйверов). Отсутствие root-доступа просто означает, что это больше не является вашей обязанностью или привилегией делать это.

Правда ли, что оповещения о чрезвычайных ситуациях в беспроводной сети могут привести к включению телефона, даже если его питание отключено? Вы меня заинтересовали. Пожалуйста, перейдите сюда и добавьте свой вклад.
@unforgettableid, я разместил ваш вопрос на странице Security stackexchange. security.stackexchange.com/questions/102567/…