Почему перепрошивка смартфона может привести к «окирпичиванию»?
Может, в случае с UEFI как-то сложнее, но раньше на ПК было так: BIOS читает MBR и передает управление (тому, что на диске).
На диске - байты, которые, вставив диск в другой компьютер, либо просто подключив его шиной к другому устройству, можно доподлинно считать. И, затем, также восстановить.
Ну и в BIOS есть некоторые параметры. Их - да, можно испортить. Но, кажется, даже они хранились за счет извлекаемой батарейки. Ну или DualBIOS, или как его там.
Но "окирпичить" ПК - я, программист, затрудняюсь сказать, как еще.
А что иначе в смартфонах? Что мы там такое перепрошиваем, что наступает каюк?
Это первый вопрос. И второй - почему ни один известный мне смартфон не ведет себя как флешка, когда в выключенном состоянии я подключаю его к ПК? Точнее, это обусловлено техникой или маркетингом? (Кстати, год назад я задавал этот вопрос на 4PDA, там удивились моему вопросу и затруднились ответить.)
P.S. И как отличается по этому вопросу UEFI от BIOS? Там же SecureBoot/etc., должно же это как-то запрещать "сброс"...
P.P.S. Не позорьте меня, пжл, за этот вопрос. Япросто не в курсе. Зато в курсе чего-то другого :-)
Потому что если будет прошиваться загрузчик от другой модели - он может не заработать или заработать не правильно. Зависит от содержимого прошивки и способа прошивки - тоесть от конретной модели(как там реализовали это). Современные модели сложно убить прошивкой.
Не ведет как флешка - скорее всего обусловлено маркетингом, так как он как минимум запускает загрузчик чтобы показывать проценты зарядки - просто нет в нем программы чтобы транслировать содержимое флешки в USB-HDD. И конечно безопасность - загрузчик не сможет проверить легальность(в нем нет такой программы).
Почему так сделали - потому что так проще.
Первая, видимо, именуется bootloader, и она загружает вторую. И если ее не перезаписывать, то не окирпичиться. Но bootloader налагает ограничения на перепрошивку, в зависимости от аппетитов производителя, поэтому иногда приходится перепрошивать и его (хотя... как?) Я прав?
Просто все используют Uboot а он максимум может показывать проценты зарядки. Во вторых кроме загрузчика на флешке еще бывает загрузчик встроенный в процессор - он обычно работает в FACTORY MODE - благодаря стандартной схемотехнике он имеет прямой доступ к любой памяти и может лишь записывать и считывать, с экраном и переферией не работает, нужен для загрузки прошивки на фабрике.
На самой флешке не 2 раздела - как минимум boot,kernel,initrd,system,data обычно к ним добавляются 1 или 2 раздела recovery (kernel,initrd или только initrd). В современных смартфонах примерно 10 разделов (а маркетологи указывают размер флешки установленной).
тема большая, всего не описать, да и я не знаю всего.
Александр Куракин, тем, что может потребоваться JTAG и диагностический интерфейс чтобы связаться с этим загрузчиком и пропихнуть правильную прошивку.
Потому что на USB его не хватит =)))
Это примерно как требовать от bootblock'a BIOS поддержки Ethernet, USB-мыши и всё это с графическим интерфейсом
ipswitch, ок, что такое JTAG я тоже представляю =) То есть через JTAG/etc. можно гарантировано раскирпичить? И, имея JTAG, в этой истории не останется магических полувосстанавливаемых частей? =)
ipswitch, ФУ, слава Богу. Объясняю. Я год работал с STM32F4 Discovery, ну и... Немного в теме. Но понять, как же так можно "полностью окирпичить", я так и не смог понять. Теперь ясно - "если у вас нет программатора" =) Спасибо!
Александр Куракин, не, ну ещё можно физически повредить не очень хороший EEPROM частыми стираниями/записями. Кривую китайскую флешку eMMC до такого довести в принципе реально.
ipswitch, Единственный вариант, который я бы понял - "самоуничтожение из маркетинговых соображений". Если внутренний программатор при перепрограммировании чует неладное, то переходит в особый режим - отказа от работы. Вплоть до электрического самодестроя (Ну или он просто при этом ROM.). Я уж боялся, что так...
Александр Куракин, ну не на таком низком уровне.
Обычно всё же бывает жёсткая проверка контрольной суммы и/или цифровой подписи уже bootloader'ом и невозможность загрузить нечто неподписанное.
Или пожёстче, с полным шифрованием раздела на ключ, содержащийся в bootloader'e и загружаемой прошивке. Ключ не совпадает = всё. Всякие токенизации, HTC S-On и Samsung KNOX так работают.
Про KNOX почитайте, после паранойи Apple это наверное следующее из существующих подобных решений.
Александр Куракин, кое-где не ROM. А к примеру "матрёшка" с возможностью прошиться при условии Х. К примеру, если есть правильный сертификат или ключ разработчика. А вот какой-нибудь вышестоящий софт уже ROM. И чисто в теории возможен вариант "имея ключ на запись и не имея правильного образа ПО прошил неведомую хрень а теперь контрольная сумма не совпадает или ключ шифрования утерян".
Если перешить BIOS компа на всякую муть, он тоже перестанет запускаться.
А вообще, на большинстве современных телефонов есть режим восстановления прошивки - Fastboot на Xiaomi, Download Mode на Samsung, спец режим на MTK процах. В этом режиме обеспечивается минимальная функциональность для загрузки новой прошивки. Но если и этот загрузчик перепрошить на несовместимую версию, то телефону просто нечего будет загружать. Любой режим приводит к ошибке. Вставить внешний носитель и загрузиться с него невозможно, он это просто не умеет.
Что до USB - в телефонах он программный, операционка решает как и что доступно по USB. В выключенном состоянии на процах MTK подключение USB переводит проц в загрузочный режим, он на миг определяется как COM порт.
Еще одна проблема с "USB-флешкой" заключается в том, что на андроид телефонах внутренняя память отформатирована в ext4, а винда эту ФС не понимает. В запущенном состоянии можно включить MTP режим, более сложный для взаимодействия. В режиме минимальной функциональности нет даже дров на eMMC (UFS), не то что подключить её напрямик к USB. Сложно всё это
Но если "спец режим на MTK процах не перепрошивать", то ничего не нарушится?
И по поводу "программного USB" - это технически обосновано, или маркетинг? Во флешке все это есть, она маленькая (если не считать штекер). В чем проблема?
А через контакты какие-либо (а-ля GPIO? не, JTAG) можно доступ к Flash заиметь?
Александр Куракин, в том, что флешка аппаратно (контроллер с примитивной прошивкой или же вообще хардкор и ПЛИС, были такие первые флешки на USB 1.1) реализует режим USB Mass Storage. А в процессоре телефона это программа, один из режимов работы.
Технически ничто не мешает это реализовать. Процессор при этом будет молотить на некой совсем не IDLE-овой тактовой частоте, гоняя ту самую ветвь кода, что отвечает за USB Mass Storage.
Представьте себе современный автомобиль на стоянке, двигатель заглушен, двери закрыты, в салоне никого нет, работает сигнализация - а Вы хотите чтобы забытый в салоне кот смог включить музыку или подогрев сидений. Вот как-то так.
Если очень хочется USB Mass Storage при незапущенной прошивке - это есть во многих Bootloader'aх и Recovery, к примеру в TWRP.
Если сравнить с BIOS - то это BIOS с мышью, встроенным файловым менеджером и кучкой своих драйверов.
Представьте себя доктором. Вам нужно пересадить головной мозг самому себе. Вы вскрываете черепную коробку, перерезали себе последнюю артерию и... забыли кто Вы, где Вы и что собираетесь сделать.
Так же и с компьютерами. Они очень быстро перезаписывают свою программу, чтобы избежать "окирпичивания", то есть утери какой-то части программы и невозможности её прочтения. А если вдруг что-то пойдёт не так, то будет, как и в случае с врачом.
У смарта нет BIOS. Ее роль играет загрузчик. Если зашить в смарт загрузчик от другой модели или вообще от другого телефона - опа, телефон раз... и не загрузится - тот же эффект, как если бы в комп вшить BIOS от другой модели.