Уточнение к первой статье: чип SC6531DA оказался более старым, чем SC6531E, но по некоторым характеристикам он лучше, например макс частота 312 МГц, то есть в полтора раза выше.
Можно записать вместо прошивки, но без драйвера для MicroSD это будет бесполезно. При 4 мегабайтах RAM на дешевых моделях - запустить игру вместе с ОС из прошивки - невозможно, только если сделать режим, когда прошивка выгружается (и функции сотовой связи работать не будут), а после выхода из игры загружается снова. При 8 мегабайтах памяти хватит, это чип SC6531H (совместимый с E).
В самих исходниках Doom предполагается (README.asm), что некоторые функции перепишут на ассемблер, и я переписал (doomasm.s в репозитории на гитхабе).
Для Doom мощности чипа более чем хватает. И мне кажется, что проц довольно мощный, ОЗУ ставят очень мало.
В теории можно сделать из этого игровую приставку, если разобраться еще с работой MicroSD разъёма. Можно сделать NES/SNES эмулятор. Но у меня нет желания это серьёзно дорабатывать, особенно в одиночку, реверс-инжиниринг это тяжелая работа.
Сохраняться можно, забыл еще тут прямо написать (но это было в первой моей статье), что звук не сделан и играть придётся с подключенным USB кабелем. Можно его отключить после загрузки уровня, но потом зависнет при любом обращении к файловой системе.
При сохранении есть тонкость, что без указания имени сохранения - игра не сохраняет, надо нажать на одну из кнопок смены оружия (что добавит в имя какую-то цифру). Сохраняется в рабочую директорию игры на ваш компьютер. Причём сохранения должны быть совместимы с DOS версией игры, и некоторыми портами игры, если там исправили огрехи ванильной версии (и я ничего не сломал, потому что давно не проверял).
Еще забыл про раскладку клавиш для игры написать (лучше картинку сделать), но разобраться не сложно.
Телефоны продаются на популярном в России интернет-магазине, кроме двух тут остальные куплены специально для тестирования. Брал на распродажах с большими скидками.
Это Samsung. У них были телефоны на чипах Spreadtrum. Эти могли так скрупулёзно подойти к делу, что сменили код производителя чипсета на свой. Что в прошивке сделать просто. Если вогнать телефон в загрузочный режим, то может проявится код производителя чипсета.
Для телефонов известных брендов я бы рекомендовал поискать характеристики модели в интернете. Или в руководстве пользователя (что тоже можно найти в интернете). С этим должно быть проще, чем для Российских брендов, у некоторых из которых я даже сайта найти не смог.
Еще добавлю про mtkclient, что хотя не запускал, но код mtkclient изучал (и много других) чтобы сделать свой. И вот судя по коду mtkclient - эта программа не будет работать с MT6260/MT6261. Потому что при подключении выполняет эти команды, которые не поддерживаются. MT6260 даже нет в таблицах mtkclient, только как приписка name="MT6573/MT6260", то есть MT6260 подкинули к MT6573. Те настройки, что указаны для MT6573 - явно не подходят для того MT6260, что у меня есть.
Программа прошивки от MediaTek даже не пытается запросить у BROM выполнение этих команд, при подключении девайса с этими чипами первые команды после handshake - это LEGACY_READ (0xA2) по адресам 0x80000000 (SW high) и 0x80000008 (HW high).
Еще к mtkclient прилагаются примеры payload кода для MT6261. Там нет своего кода для работы с USB, там захардкожен адрес на функции из BROM. Конечно же, в тех устройствах что есть у меня - другой BROM и другие адреса.
Так что, если кто-то собирается заявить "Какой дурак пишет свои инструменты, всё уже давно написано, бери готовое!". То нет, это плохие инструменты, плохого качества. И если не умеешь писать свои, то останется надеяться только на авось.
если подключить МТК к компьютеру в режиме прошивки, в lsusb он провисит не более 100 мс
Верно, но я имел в виду подключение телефона с загруженной ОС. Например как USB накопитель (наличие других опций зависит от прошивки). Только не 100 мс, там секунда, иначе бы мои самописные тулы просто не работали (проверяю подключение 2 раза в секунду).
поэтому на линуксе лучше, конечно, смотреть в dmesg
Этим пользовался, когда отлаживал режим прошивки.
это завершить хендшейк и получить ответ на команды
Я бы этим пользовался, но оказалось что в BROM у MT6260/MT6261 эти команды просто не поддерживаются.
можно использовать программы типа mtkclient
Мне не понравилась эта программа. Раздутая, хочет установки. Требует кучу Python зависимостей для сборки. Такими тулами на питоне я пользоваться не собираюсь. Поэтому свою на Си написал.
В Европе делают свои кнопочные, но дорогие для их функциональности (с точки зрения небогатых и избалованных дешевой китайской техникой людей), и с дизайном хуже чем у китайских! Например: Punkt MP02, Mudita Pure
Мне бы тоже хотелось возвращения качественных кнопочных телефонов. Пока же хочу отметить, что эти китайские чипы достаточно мощные. Проблема только в том, что на оперативной памяти сильно экономят (всего 4 МБ на большинстве!) и унылая прошивка с минимумом функционала.
В комментарии и не утверждалось, что это фирма, добавлено "т.н.".
когда разработчики связных чипов (например, Alcatel)
У Alcatel были свои чипы? Их вроде перепродали насколько раз, так что осталось только название. Я их знаю уже только как бренд телефонов, есть один старый телефон от них, с qwerty клавиатурой и поддержкой J2ME приложений (но уверен что там всё китайское.)
Я знаю что это от более старого чипа. Написал же что чипсет состоит из разных частей, у каждой из которых есть свой номер. Например SC6500_BAR написано про MMI. Либо это действительно использовали что-то старое, либо опечатка в прошивке. С тех времён версию не исправляли.
SC6531E - например вообще не 6531, а имеет номер 6562. Но много имеет много общего с 6531.
А еще старый 6531 в 1.5 раза быстрее по частоте, чем новый 6562 (он же SC6531E).
Чтобы вы мне еще не возражали, что у меня телефон на том старом чипсете - этот чип точно SC6531BA. Это читается из его глобальных регистров (0x65310001 по адресу 0x205003fc). Но версию MMI он пишет именно такую (SC6500_BAR).
Опять не совсем так.
Что не так из того что я написал? До сих пор производятся и продаются телефоны/смартфоны с этими чипсетами. Сами можете купить и проверить.
это лютая древность 2014 года, устаревшая уже на момент выхода
Лютая или не лютая, но дешевая и поэтому нашла свою нишу и используется.
А из интересного - то, что RDA8826, он же SC6533 - это даже не ARM, а MIPS архитектура!
Я вам рекомендую обратить пристальное внимание на картинку к новости. Где чип RDA8955 тоже имеет номер SC6533, а вы мне пишете про какой-то конкретный RDA8826. И что есть такой у них на MIPS, я тоже знаю.
В общем - я недоволен вашими наездами, что что-то у меня не так и вы явно очень умничаете и явно знаете меньше, чем вы считаете что знаете.
Несколько лет назад, я тоже по просьбе ("ты же программист") доставал контакты из телефона с неработающим экраном, чипсет был MediaTek MT6261. Я сомневался, что у меня это получится, но таки получилось. Без специальных приложений, так что оказалось сложнее чем у вас, и потребовало некоторого программирования (написал свой код для извлечения контактов из файлов MP0C_003 MP0H_006 и даже вытащил СМС из MPA3_001).
Пока не дошел до публикации всего. На гитхаб (в дампер/загрузчик) добавил использование libusb (для тех кто на Windows - это будет единственный метод, подозреваю что еще и драйвера требует, те же самые что для прошивки используются). Если вы на Windows, то попробуйте собрать это и дампнуть прошивку. И телефон нужен конкретного чипсета. В общем не просто и не сразу, код пока настроен на одну модель телефона и LCD экрана, но у меня есть идеи для автоматического нахождения конфигурации телефона.
Причём J в ARMv5TEJ - это Jazelle, расширение процессора что позволяет выполнять Java байткод напрямую. Но Java там нет, возможно из-за малого количества RAM/флэш памяти.
Хотелось бы накопить достаточно знаний о чипе чтобы сделать открытую ОС. Но такое я один не потяну, нужна команда. Так что я хочу сделать порт Doom что работает на достаточном количестве телефонов, а там может народ подтянется и поможет с остальным. (Или не подтянется, ну и ладно... попытаться всё равно стоит.)
Мои тулы с гитхаба собрать и запустить сможете? (Что загрузчик FDL для Линукс и custom_fdl.) С вами бы я скооперировался для ускорения разработки. На базе этих исходников у меня FDL2 с игрой и USB файл сервер.
Заказал несколько дешевых телефонов на распродаже на чёрную пятницу (что сейчас идёт). Буду проверять и улучшать совместимость. Может получится написать сканер прошивок для автоматического нахождения необходимых настроек.
Всё-таки не любым, или я не нашел правильной опции.
Про чип можете прочитать в моей первой статье.
Уточнение к первой статье: чип SC6531DA оказался более старым, чем SC6531E, но по некоторым характеристикам он лучше, например макс частота 312 МГц, то есть в полтора раза выше.
Можно записать вместо прошивки, но без драйвера для MicroSD это будет бесполезно. При 4 мегабайтах RAM на дешевых моделях - запустить игру вместе с ОС из прошивки - невозможно, только если сделать режим, когда прошивка выгружается (и функции сотовой связи работать не будут), а после выхода из игры загружается снова. При 8 мегабайтах памяти хватит, это чип SC6531H (совместимый с E).
В самих исходниках Doom предполагается (README.asm), что некоторые функции перепишут на ассемблер, и я переписал (doomasm.s в репозитории на гитхабе).
Для Doom мощности чипа более чем хватает. И мне кажется, что проц довольно мощный, ОЗУ ставят очень мало.
В теории можно сделать из этого игровую приставку, если разобраться еще с работой MicroSD разъёма. Можно сделать NES/SNES эмулятор. Но у меня нет желания это серьёзно дорабатывать, особенно в одиночку, реверс-инжиниринг это тяжелая работа.
Сохраняться можно, забыл еще тут прямо написать (но это было в первой моей статье), что звук не сделан и играть придётся с подключенным USB кабелем. Можно его отключить после загрузки уровня, но потом зависнет при любом обращении к файловой системе.
При сохранении есть тонкость, что без указания имени сохранения - игра не сохраняет, надо нажать на одну из кнопок смены оружия (что добавит в имя какую-то цифру). Сохраняется в рабочую директорию игры на ваш компьютер. Причём сохранения должны быть совместимы с DOS версией игры, и некоторыми портами игры, если там исправили огрехи ванильной версии (и я ничего не сломал, потому что давно не проверял).
Еще забыл про раскладку клавиш для игры написать (лучше картинку сделать), но разобраться не сложно.
Телефоны продаются на популярном в России интернет-магазине, кроме двух тут остальные куплены специально для тестирования. Брал на распродажах с большими скидками.
Это Samsung. У них были телефоны на чипах Spreadtrum. Эти могли так скрупулёзно подойти к делу, что сменили код производителя чипсета на свой. Что в прошивке сделать просто. Если вогнать телефон в загрузочный режим, то может проявится код производителя чипсета.
Для телефонов известных брендов я бы рекомендовал поискать характеристики модели в интернете. Или в руководстве пользователя (что тоже можно найти в интернете). С этим должно быть проще, чем для Российских брендов, у некоторых из которых я даже сайта найти не смог.
Нет, но железо хорошее.
Еще добавлю про mtkclient, что хотя не запускал, но код mtkclient изучал (и много других) чтобы сделать свой. И вот судя по коду mtkclient - эта программа не будет работать с MT6260/MT6261. Потому что при подключении выполняет эти команды, которые не поддерживаются.
MT6260 даже нет в таблицах mtkclient, только как приписка name="MT6573/MT6260", то есть MT6260 подкинули к MT6573. Те настройки, что указаны для MT6573 - явно не подходят для того MT6260, что у меня есть.
Программа прошивки от MediaTek даже не пытается запросить у BROM выполнение этих команд, при подключении девайса с этими чипами первые команды после handshake - это LEGACY_READ (0xA2) по адресам 0x80000000 (SW high) и 0x80000008 (HW high).
Еще к mtkclient прилагаются примеры payload кода для MT6261. Там нет своего кода для работы с USB, там захардкожен адрес на функции из BROM. Конечно же, в тех устройствах что есть у меня - другой BROM и другие адреса.
Так что, если кто-то собирается заявить "Какой дурак пишет свои инструменты, всё уже давно написано, бери готовое!". То нет, это плохие инструменты, плохого качества. И если не умеешь писать свои, то останется надеяться только на авось.
Верно, но я имел в виду подключение телефона с загруженной ОС. Например как USB накопитель (наличие других опций зависит от прошивки).
Только не 100 мс, там секунда, иначе бы мои самописные тулы просто не работали (проверяю подключение 2 раза в секунду).
Этим пользовался, когда отлаживал режим прошивки.
Я бы этим пользовался, но оказалось что в BROM у MT6260/MT6261 эти команды просто не поддерживаются.
Мне не понравилась эта программа. Раздутая, хочет установки. Требует кучу Python зависимостей для сборки. Такими тулами на питоне я пользоваться не собираюсь. Поэтому свою на Си написал.
В Европе делают свои кнопочные, но дорогие для их функциональности (с точки зрения небогатых и избалованных дешевой китайской техникой людей), и с дизайном хуже чем у китайских! Например: Punkt MP02, Mudita Pure
Мне бы тоже хотелось возвращения качественных кнопочных телефонов. Пока же хочу отметить, что эти китайские чипы достаточно мощные. Проблема только в том, что на оперативной памяти сильно экономят (всего 4 МБ на большинстве!) и унылая прошивка с минимумом функционала.
В комментарии и не утверждалось, что это фирма, добавлено "т.н.".
У Alcatel были свои чипы? Их вроде перепродали насколько раз, так что осталось только название. Я их знаю уже только как бренд телефонов, есть один старый телефон от них, с qwerty клавиатурой и поддержкой J2ME приложений (но уверен что там всё китайское.)
Я знаю что это от более старого чипа. Написал же что чипсет состоит из разных частей, у каждой из которых есть свой номер. Например SC6500_BAR написано про MMI. Либо это действительно использовали что-то старое, либо опечатка в прошивке. С тех времён версию не исправляли.
SC6531E - например вообще не 6531, а имеет номер 6562. Но много имеет много общего с 6531.
А еще старый 6531 в 1.5 раза быстрее по частоте, чем новый 6562 (он же SC6531E).
Чтобы вы мне еще не возражали, что у меня телефон на том старом чипсете - этот чип точно SC6531BA. Это читается из его глобальных регистров (0x65310001 по адресу 0x205003fc). Но версию MMI он пишет именно такую (SC6500_BAR).
Что не так из того что я написал? До сих пор производятся и продаются телефоны/смартфоны с этими чипсетами. Сами можете купить и проверить.
Лютая или не лютая, но дешевая и поэтому нашла свою нишу и используется.
Я вам рекомендую обратить пристальное внимание на картинку к новости. Где чип RDA8955 тоже имеет номер SC6533, а вы мне пишете про какой-то конкретный RDA8826. И что есть такой у них на MIPS, я тоже знаю.
В общем - я недоволен вашими наездами, что что-то у меня не так и вы явно очень умничаете и явно знаете меньше, чем вы считаете что знаете.
Несколько лет назад, я тоже по просьбе ("ты же программист") доставал контакты из телефона с неработающим экраном, чипсет был MediaTek MT6261. Я сомневался, что у меня это получится, но таки получилось. Без специальных приложений, так что оказалось сложнее чем у вас, и потребовало некоторого программирования (написал свой код для извлечения контактов из файлов MP0C_003 MP0H_006 и даже вытащил СМС из MPA3_001).
Помню эту старую новость. Но на монохромном дисплее плохо видно, поэтому я не собираюсь поддерживать телефоны с монохромным дисплеем.
Пока не дошел до публикации всего. На гитхаб (в дампер/загрузчик) добавил использование libusb (для тех кто на Windows - это будет единственный метод, подозреваю что еще и драйвера требует, те же самые что для прошивки используются). Если вы на Windows, то попробуйте собрать это и дампнуть прошивку. И телефон нужен конкретного чипсета. В общем не просто и не сразу, код пока настроен на одну модель телефона и LCD экрана, но у меня есть идеи для автоматического нахождения конфигурации телефона.
Дополнил текст, 19 FPS было из-за ошибки в заполнении MMU таблиц. После исправления упёрлось в 35 FPS лимит.
Причём J в ARMv5TEJ - это Jazelle, расширение процессора что позволяет выполнять Java байткод напрямую. Но Java там нет, возможно из-за малого количества RAM/флэш памяти.
На Hacker News размещал, никто не заметил, но там всегда как повезёт.
Хотелось бы накопить достаточно знаний о чипе чтобы сделать открытую ОС. Но такое я один не потяну, нужна команда. Так что я хочу сделать порт Doom что работает на достаточном количестве телефонов, а там может народ подтянется и поможет с остальным. (Или не подтянется, ну и ладно... попытаться всё равно стоит.)
Мои тулы с гитхаба собрать и запустить сможете? (Что загрузчик FDL для Линукс и custom_fdl.) С вами бы я скооперировался для ускорения разработки. На базе этих исходников у меня FDL2 с игрой и USB файл сервер.
Заказал несколько дешевых телефонов на распродаже на чёрную пятницу (что сейчас идёт). Буду проверять и улучшать совместимость. Может получится написать сканер прошивок для автоматического нахождения необходимых настроек.