Приветствую всех, кто в данный
момент выбрал несколько минут своего
драгоценного времени и читает эту статью! Очень хотелось бы верить, что
вы из
неё почерпнёте для себя что-нибудь полезное. Сразу извиняюсь за
вынужденную
задержку с выходом в свет этого творения – начальство в экстренном
порядке
вздумало послать меня в коммандировку (привет, Набережные Челны!). Ну да
ладно,
зато длогими вечерами в гостинице было время всё хорошо обдумать и
оформить;
как говорится – нет худа без добра. В мои планы входит написать серию из
нескольких статей, обьединённых одной темой: «Китайские телефоны», и
сейчас вашему
вниманию представляется первая статья из этой серии, посвящённая
прошивке,
кабелю; ну и вообще, так сказать, «немного обо всём». Просто ради справедливости хочу сразу оговориться: я совершенно не претендую на абсолютную верность своих суждений, даже напротив: призываю всех Вас не верить мне! Дело в том, что я сознательно не копирую шаблонные инструкции к программам и программаторам; подобные вещи вы легко найдёте и самостоятельно при помощи Яндекса. Я же, приступая к работе над этой серией статей, изначально основывался только на своём опыте, наблюдениях и измерениях. В «актив» подобной манеры изложения можно записать более чем двенадцатилетний (и заметьте: относительно успешный!) опыт ремонта сотовых телефонов; в «пассив» - ну, не всегда моё мнение совпадает с мнением авторов программ и рекламных статей. В любом случае, решать вам. Если есть, о чём поспорить – буду рад; есть вопросы – задавайте. Надеюсь, мой труд будет кому-то полезен. Итак – к барьеру! Прежде всего – хотелось бы привести немного скучной теории. Так как статьи рассчитаны на самый разный круг читателей, то среди них найдутся и те, кто только что решился прошить первый в жизни телефон, и ещё сам не очень понимает, с чего начать и зачем вообще это нужно. Вот их я и приглашаю прочитать эту часть статьи. Впрочем, остальным, думаю, тоже будет не вредно освежить знания. Итак: а что это вообще такое – прошивка? Попробую объяснить. Сотовый телефон – это не только «ценная шерсть и три килограмма диетического мяса»; в состав абсолютно любого телефона входят, как минимум, следующие узлы: модуль радиотракта, микропроцессор, аудиотракт, дисплейный модуль (и сам дисплей), батарея, ну и клавиатура. Всё это должно согласованно работать над одной задачей: когда вы нажимаете кнопочку «666» - в трубке непременно должен зазвучать голос горячо любимой тёщи! Немного подробнее это происходит так: при нажатии определённых клавиш процессор переходит из «сонного» режима в режим работы, активизирует радиотракт, связывается с базой и получает временныйй ключ кодировки, далее база соединяется с такой же трубкой любимой тёщи; сигнал с микрофона усиливается, цифруется, кодируется… Ну и так далее. А как вы полагаете, кто, или что – является руководителем такого слаженного действия всех узлов? Человек? Не-а, он только кнопочки нажимает! Микропроцессор? Ну, отчасти. Ещё со школьного курса информатики многие усвоили, что процессор – это всего лишь устройство, которое умеет очень быстро считать и уже в зависимости от результатов вычислений выдавать на определённых выходах тот или иной сигнал. А кто, или что – поставляет данные для процессора, чтобы тот мог их посчитать? Где прячется алгоритм работы, по которому процессор, при длительном нажатии клавиши "#” должен активизироваться? Так вот: прошивка – это и есть всего лишь файл, в котором и закодирован полный алгоритм работы телефона! Повинуясь этому алгоритму микропроцессор в телефоне должен в абсолютно любой ситуации совершенно точно и однозначно реагировать на те или иные действия пользователя или сети. В прошивку входятдрайвера всех устройств, установленных в Вашем аппарате (камеры, табло, клавиатура…), там закодирован и весь алфавит, чтобы СМСки печатались именно на русском языке; игры, мелодии, настройки передатчика, уровень напряжения батареи, при котором телефон пишет, что батарейку нужно зарядить… Короче, как я уже сказал, прошивка – это файл, который частями или полностью выполняется в процессоре. Можно провести некоторую параллель с обыкновенным компьютером: есть «железная» часть: материнская плата, винчестер, блок питания; есть необходимая минимальная программная часть: операционная система, драйвера всех устройств, BIOS материнской платы; а уже на самом верхнем уровне – программы, ради которых всё это и задумывалось: наши любимые игрушки, ICQ, видеоплееры… Попробуйте, сотрите память в микросхеме БИОСа и попытайтесь включить комп. Или – «убейте» операционную систему. На что станет похож Ваш ноутбук? Правильно, на груду железа. И, несмотря на то, что все детали компьютера исправны – он просто не включится! Так вот: то, что записано в этой самой микросхеме BIOS вместе с операционной системой и драйверами – это и есть прошивка! Вот всё точно так и в телефоне: всё будет исправно, тестером, анализатором и любыми пробниками можно хоть всю жизнь искать неисправность – и в конце концов выяснится, что всё абсолютно исправно; но пока мы не объясним каждому узлу, когда и что он должен делать – ничего просто не заработает! А где же хранится эта самая прошивка? Сообщаю по секрету: в любом, даже в самом древнем телефоне есть флеш-память, или – флешка. Но – не радуйтесь: это не та флешка, на которой все хранят музыку и порнушку. Есть в телефоне микросхема, которая выполняет функции сразу и микросхемы БИОСа, и винчестера в компьютере, и которая всегда работает в паре с процессором. Вот в неё-то и записывается файл прошивки; причём, что важно – записывается строго в определённое место; каждому нолику и каждой единичке файла прошивки соответствует только одно, единственное и уникальное место в ячейке флеш-памяти! Если в компьютере мы можем записать новую песенку на диск «С» или «D», или вообще – на CD-болванку, то в телефоне такое не получится: процессор просто не будет знать, где и что лежит! А при включении телефона процессор всего лишь читает из определённых ячеек памяти программу-прошивку и выполняет её. В связи с этим при прошивке необходимо очень точно контролировать, куда и что заливается, адреса начальной и конечной ячеек и всего, что между началом и концом. Это трудность номер раз. Разумеется, есть и ещё (чтобы не скучали!). Подумав немного, наиболее дотошные товарищи зададутся вопросом: но раз прошивка управляет работой всего, значит, она же должна хоть и косвенно, через поцессор, но всё же должна - управлять и самим процессом прошивки телефона! Замкнутый круг получается, однако! Правильно вы думаете, верно. Это трудность номер два. И решение уже давно придумали. Для начала прошивки в процессор прежде всего загружают программу – лоадер (загрузчик), которая работает всего один раз и единственной её задачей является правильное «раскладывание» по ячейкам памяти файла прошивки. Как только последний бит файла ляжет в отведённую для него ячейку программа-лоадер выгружается из процессора, а при последующем включении в процессор уже загружается файл прошивки и начинается штатная работа. Есть телефоны, в которых используется внешний лоадер, т.е. в сам телефон он не загружается, а работает на компьютере; в этом случае должна быть аппаратно реализована возможность помещать определённую информацию в определённые ячейки памяти телефона. Трудность номер три (я же говорил, что скучно не будет!): а как до этой самой флешки добраться, как к ней подключиться? Ведь чтобы куда-то записать файл с компьютера нужно сначала это «что-то» к компьютеру подсоединить! А в отличие от традиционных флеш-карточек или USB-флешек микросхему к компьютеру не подключишь?! Так что же делать? Ну… прежде всего, справедливости ради, замечу, что микросхему действительно можно выпаять и подключить напрямую к компьютеру через специальное устройство (программатором называется!), записать туда программу и припаять флешку обратно; правда, процедура эта очень дорогая, сложная и никогда в жизни не окупится, так что не стоит её и упоминать. А более цивилизованный способ основан на том, что сами производители, желая максимально упростить и удешевить процесс сборки, подключают некоторые, важные для прошивки выводы внутренней флеш-памяти прямо к разъёму телефона. Соответственно, для прошивки достаточно просто найти эти контакты и подключиться к ним! И не бейте меня ногами за такое объяснение: знаю, это не совсем правильно. К разъёму подключаются не выводы флешки как таковые, а ещё целая куча всего: фильтры, процессор, преобразователь уровней… Сейчас я не собираюсь разжёвывать архитектуру построения телефонов, я просто хочу, чтобы читатели немного поняли, о чём речь. Кстати, если есть желание – могу и про архитектуру, напишите, если интересно. А теперь вопрос: прочтя всё вышесказанное – как думаете: можно ли при помощи прошивки заставить телефон работать в десять раз быстрее? Или прошивкой сделать так, чтобы в телефоне появился GPS-приёмник? А может, при помощи прошивки можно сделать, чтобы батарейки хватало на пол года?! А ведь приходят товарищи ко мне в мастерскую и с умным видом требуют, чтобы я прошил их телефон, потому как «динамик хрипит!». Ну да ладно, мы отвлеклись. Весь файл прошивки можно условно разделить на три части (а можно и не условно: например, у некоторых Самсунгов или СониЭриков прошивка и состоит из двух или трёх файлов). Первая часть – всегда отвечает за аппаратную часть телефона: драйвера, настройки, калибровки… всё это заносится в прошивку. Может, кто ещё помнит, сколько различных регуляторов, подстроечников и прочих «крутелок» было на платах старых телевизоров? Да не меньше сотни! А в телефоне-то таких настроек гораздо больше! Более того, как не было двух телевизоров, у которых все настроечные элементы были выставлены в абсолютно одинаковое положение, так нет и двух телефонов с одинаковыми настройками! На заводе-изготовителе при помощи специального оборудования настраивают каждый, именно КАЖДЫЙ телефон по отдельности. А результаты настроек заносят в специальную область в файле прошивки. Эта область УНИКАЛЬНА, и даже в другом точно таком же телефоне из этой же серии настройки будут другими! Во второй части файла хранятся чисто уже программные «фишки»: иконки, картинки, мелодии, игры, архитектура меню… В общем, если первая часть была БИОСом и драйверами, то вторая часть – это вроде как операционная система. А в третьей части – самой маленькой, но не менее важной, хранятся настройки безопасности и региональные настройки: языки, список разрешённых или запрещённых операторов, страна, в которой тел может работать… Соответственно, нетрудно догадаться, что первая часть прошивки уникальна и её менять нельзя вообще, иначе телефон просто не заработает! Вернее, менять-то можно, но настройки очень желательно сохранить. Залив в телефон настройки от другого, пусть и точно такого же тела, мы получим… аппарат для проверки своей удачи! Может, и заработает, а может, и нет. Чаще всего, конечно, работает, но с различными «глюками»: то сигнал слабый, то связь прерывается, быстро садится батарейка, звук тихий (или громкий)… ну и так далее. Короче, настройки нужно всегда сохранять и после прошивки возвращать на место! Вторую часть можно менять безо всяких проблем, ну картинки будут другого цвета или меню другой формы – ничего важного. А вот третью – третью можно в случае необходимости смело залить от другого телефона; главное, чтобы настройки безопасности совпадали; иногда это делать даже не «можно», а именно «нужно» - это когда телефон привезли из-за границы и он ругается, мол, «работать не буду, обратитесь к своему оператору». Запомнили хоть что-нибдь из вышесказанного? Да? Ну и зря! Забудьте! Потому, что я это всё рассказывал применительно к обычным, не китайским телефонам, и рассказывал я это только затем, чтобы вы поняли, как это должно быть «по хорошему». В «китайцах» же обычно всё совершенно не так. Особенности китайских телефонов. «Всё не так, ребята!» - пел когда-то Высоцкий. Ну, или почти всё. Ничего принципиально нового китайцы не изобрели: в целом всё вышесказанное относится и к ним; но – это в целом. Дело в том, что инженеры из поднебесной в деле максимального удешевления своей продукции пошли ещё дальше. Во первых, в 99% их телефонов все три части прошивки – те, о которых я говорил выше, соединены в одну и намертво переплетены так, что просто невозможно их «расплести» обратно. Архитектура используемых в телефонах процессоров и размер используемой флеш-памяти, разумеется, налагают некоторые ограничения и унификацию на прошивку, но помогает это слабо. Постараюсь объяснить: допустим, что в телефоне SonyEricssonXXXязыковой пакет лежит в ячейках памяти с 1000 по 2000. Соответственно, желая нормально русифицировать этот телефон, нужно всего лишь заменить содержимое этих ячеек на аналогичное, но с русским ленг-паком. В китайских же телах всё не так просто! Ну, во первых – возможно, что ячейки с языковым пакетом лежат не «все в одном месте», а разбросаны так, как позволяло место… или умственные способности разработчиков. Для полноты ощущений добавлю: бывает, что текст надписей лежит в одном месте, а шрифт (или шрифты) – в другом; формат ленгпаков бывает… очень разным, ну просто неповторимым и уникальным! Соответственно, русификация таких телефонов практически невозможна или – это будет штучная работа хорошего программиста, которая и стоит хорошо! По этой же причине в «китайцев» часто невозможно установить игрушки или приложения дополнительно к уже имеющимся. И дело часто даже не в отсутствии Ява-машины (может, кто ещё помнит, как меняли игрушки и мелодии в старых Сименсах, хотя там тоже Явы не было?!). Ведь теоретически, достаточно просто найти место, где лежит игрушка и положить туда другую, аналогичную по формату и размеру. Но ни формат, ни размер, ни, уж тем более, место, в котором игрушка лежит выяснить невозможно. Есть такая хорошая (и почти бесплатная!) программка, Ruslang называется. Предназначена именно для русификации китайских телефонов (это если забежать вперёд). 90% телефонов она более или менее сносно русифицирует, а остальные 10 ну… в лучшем случае – просто НЕ русифицирует; в худшем – убивает программно. Народ потом возмущается – дескать, программа плохая! Да нормальная программа! Ну ведь не бывает человека, который умеет говорить сразу на всех языках мира! Вот и программа просто не в состоянии распознать ВСЕХ китайцев! Но в этом есть и некий, пусть и извращённый, но плюс: прошивки от одних телефонов часто чудесным образом подходят к другим телефонам, имеющим другое название, вид, форму, марку… Просто ради смеха я даже пытался в слайдеры заливать прошивки от моноблоков (и наоборот), в телефоны вообще без камеры заливал прошивки от тел с камерами… И ведь что самое забавное: иногда работают самые неожиданные сочетания! Несколько раз в телефон без Ява-машины подбирал прошивку с Явой; причём (с месяц назад) в слайдер с двумя камерами, но без Явы подошла прошивка с Явой, но всего с одной камерой; т.е. одна камера перестала работать… но несмотря на это клиент был на седьмом небе от счастья! Когда я предложил вернуть всё как было - последовал решительный отказ и бутылка пива в добавок к стоимости работы! К вопросу о замене прошивок я ещё вернусь, но – чуть позже. Однако программная часть – не единственная проблема, которую приходится решать, желая самостоятельно научиться прошивать телефоны. Дело в том, что на те самые выводы, которые при прошивке подключаются к флешке телефона, нужно подавать только сигналы определённой формы и напряжения. Для особо любознательных назову даже цифры: сигнал логической единицы соответствует напряжению от 0 до +0,7 вольта; логический ноль равен +3…+3,5 вольта. А вот на компьютере таких сигналов нет! В USB-разъёме сигналы равны соответственно +4…+5В и 0…+0,5В; на COMили LPT портах вообще ноль – это -12В, а единица равна +12В. Короче, никак. Выход – либо покупать так называемый «Бокс» - специальный программатор для телефонов, там уровни преобразовываются автоматически, и думать почти не нужно. Нужно только подумать, где взять 300…1000 американских рублей. Но есть и более хлопотный, зато и более гуманный способ – самому сделать прошивочный кабель. Как именно его сделать – чуть позже; сейчас лишь скажу, что предназначен он для преобразования компьютерных сигналов в сигналы, понятные телефону. Наверное, людям, впервые возжелавшим прошить своего любимого китайца, понравится именно этот способ. Но и после изготовления прошивочного кабеля проблемы не заканчиваются! Иначе китайцы не были бы китайцами! Ещё одна проблема заключается в том, что, повинуясь какой-то неведомой логике, китайские инженеры в 50% случаев просто не выводят сигналы, необходимые для прошивки, на разъём телефона! Нет, контакты-то, разумеется, есть: иначе как бы сами изготовители прошивали свои творения?! Только вот контакты эти глубоко и надёжно спрятаны в недрах аппарата, и чтобы их найти нужно аппарат вскрыть. В Е-Нете выложены множество картинок с расположением контактов, есть несколько методик, по которым можно самому найти искомые проводки… Кстати, пора бы их уже как-то обозвать, контакты эти. И называются они Rx и Tx. Это от английского "Trancieve” – отправление и "Recieve”, получение; то бишь, по одной шине компьютер передаёт информацию телефону, а по другой – получает ответ. Ещё нам понадобится вывод Gnd– это сокращённое "Graund” – почва, земля, уровень условного нуля, относительно которого и отсчитываются напряжения Rx и Tx. Итак, подитожим вводную лекцию. 1)Прошивка – это файл, который нужно записать в телефон. 2)При этом главная проблема – найти этот файл, 3)Правильно подключить компьютер к телефону 4)И разложить файл по строго определённым ячейкам. А теперь немного остановимся на том, зачем всё это нужно и нужно ли вообще. Разумеется, главной причиной остаётся нормальная русификация телефона; эта проблема ещё долго будет волновать умы простых покупателей (вариант, что китайцы выучат русский – это из разряда фантастики!). Причина номер два – так называемые «мигалки»: это когда телефон с СИМкой включается, мигает, выключается, затем снова включается… Не знаю, что там за проблема, но 99% клиентов, приносящих телефоны с таким диагнозом жалуются, что тел просто повис при попытке что-то передать/получить через Блютуз. Очень много подобных жалоб… Народ помоложе и попродвинутее желает «прошивку с Ява-машиной, чтоб Аська работала». После самостоятельного ковыряния в инженерном меню телефон обычно умирает совсем – это тоже лечится прошивкой. При помощи прошивки иногда можно добиться более громкого звука или более чётких снимков: но только иногда. Это делается путём замены штатных кодеков другими. Иногда (редко) телефон вообще не включается; заливаешь новую прошивку и – вуаля! всё работает! Гурманы могут просто попробовать залить другую прошивку ради «а что там интересное?»; тут главное – сохранить бекап прошивки свей, родной. Если прониклись этой идеей – можете добавить пару-тройку своих причин. Но если телефон греется и не включается, если его искупали и плохо высушили, если там нет телевизора но очень хочется, если внезапно динамик перестаёт работать после того, как в него гвоздиком поковыряли – это прошивкой НЕ ЛЕЧИТСЯ! Я уже говорил: в телефоне есть не только прошивка; там ещё много деталек всяких, и они тоже иногда ломаются! Ну что, убедил? Ну, тогда – приступаем к первому этапу прошивки. Какому? Правильно: изготовим прошивочный кабель. Кабель. Зачем он нужен – думаю, уже ясно всем. Через стандартный Mini-USB шнурок телефон прошить нельзя! Через СОМ-кабель – тоже! Для любителей писать в личку письма типа «а можно ли прошить по Блютузу?» ещё раз объясняю: смысл прошивки заключается в прямом подключении к Flash-памяти телефона и размещении там определённой информации по определённым адресам. Есть методики, позволяющие менять часть программного кода, не имея прямого доступа к Flash-памяти. Но это работает не на всех телефонах и таким способом невозможно заменить всю информацию, находящуюся в памяти. Так что – либо прошивочный кабель, либо программатор… Идём в магазин, торгующий аксессуарами для сотовых телефонов; по дороге запасаемся БААЛЬШОЙ шоколадкой. Мило улыбаемся продавцу (лучше – продавщице!) и просим показать несколько кабелей для старых телефонов, всё равно каких: типа SiemensC55, SamsungC100, Эриксонов каких-нибудь древних… Не обращая внимания на удивлённые взгляды девушки, из предложенной кучи выбираем те, у которых на середине кабеля болтается небольшая квадратная коробочка. Примерно как на фото: А вот дальше – понадобится та самая большая шоколадка, море улыбок и, возможно, обещание жениться на продавщице: берём маленький ножик и… пытаемся открыть коробочку! Обычно она держится просто на защёлках, никаких болтиков нет. Не открывается? Берём следующую; очень нервничает продавец – идём к другому. Цель – найти коробочку, внутри которой будет маленькая печатная плата с припаянной микросхемой PL-2303. Вот как на фото: Некоторые мне возразят, что мол, есть и аналогичные микросхемы (ну, например, CP2101). Не спорю, есть. Но и мои наблюдения, и наблюдения многих моих коллег сводятся к тому, что с процессорами MTKнаиболее стабильно коннектится именно эта микросхема. А стоимость кабелей абсолютно одинаковая, так зачем лишние проблемы? Впрочем, опять же: желающие могут попробовать. Ну да ладно, как бы то ни было, а кабель мы добыли. Надеюсь. Кстати, обычно в комплекте с кабелем идёт диск с драйверами, он нам тоже понадобится. Приносим домой всё это добро,
вновь открываем таинственную коробочку на кабеле и аккуратно достаём
плату.
Вооружаемся увеличительным стеклом и ищем на корпусе микросхемы ключ:
выдавленную точку (как на фото) или любой иной знак. На надпись внимания
не
обращаем! Она может быть и кверху ногами, и как угодно. Главное – найти
ключ.
Нашли? Поворачиваем всю плату таким образом, чтобы ключ был слева внизу
(как на
фото). Тот вывод микросхемы, который оказался так же слева внизу – вывод
номер
один. Далее отсчитываем против часовой стрелки выводы 5 и 7. Нашли?
Теперь
очень внимательно следим за дорожками, идущими от этих выводов: они
(дорожки)
обязательно закончатся где-нибудь на краю платы и к ним будут припаяны
проводки, идущие к тому разъёму, который вставляется в телефон.
Дальнейшие
действия зависят от того, собираетесь ли вы когда-нибудь использовать
кабель по
прямому его назначению. Если шнурок был куплен только для прошивки
"китайцев”,
то аккуратно (АККУРАТНО!!!) выпаиваем все проводки с той стороны кабеля,
которая идёт к телефону. Затем, на найденные нами контакты – те, которые
идут
от 1, 5 и 7 выводов микросхемы, припаиваем по новому проводку
сантиметров эдак
по 30-40, желательно - разноцветных; они в аккурат должны подойти вместо
выпаянных "родных”. Для других микросхем, естественно, номера выводов
будут
другим, даташиты на любые микросхемы можно найти в Сети; ну а если
совсем
непонятно – пишите, помогу. Тут мне в личку человек прислал вполне
законную
критику: мол, на провода возможна наводка, которая будет вызывать сбои
при
прошивке. Да, согласен: такое возможно. В связи с этим – одно
обязательное
условие: проводки, припаянные ПОСЛЕ микросхемы, должны быть как можно
короче!
Не длиннее Устанавливаем для нашего девайса драйвера (с диска, или находим в Интернете), затем вставляем USB-разъём в компьютер, через пару секунд в списке оборудования должен появиться виртуальный COM-порт номер … Запоминаем этот номер (обычно 2 или 3) – он нампонадобится при дальнейшей работе. Кстати, некоторые программы стабильно работают только с портом COM-1, в связи с чем настоятельно рекомендую: если в Вашем компьютере порт СОМ1 ничем не занят – поменяйте номер виртуального порта на первый, будет только лучше. Особо любопытным могу назвать ещё пару цифр: максимальная скорость «нормального» СОМ-порта – 4700 кБ/с. Посчитайте, сколько времени займёт процесс прошивки, если файл «весит» 32МБ? Как? Выспаться успеете? А наш виртуальный СОМ-порт работает на скоростях до 128000кБ/с! Так гораздо веселее, правда? Ну а если всё вышесказанное осозноно, понято и сделано – то, пожалуй, можно прерваться на переменку и сбегать за пивом: урок номер раз подходит к концу. Если есть вопросы – пишите, нет – думаю, в течении недели выйдет вторая статья, в которой мы попытаемся прошить, а может, и русифицировать свой первый телефон. Всем добра, а инженерам из «поднебесной» - пламенный привет! | |
| |
Просмотров: 407 | | |
Всего комментариев: 0 | |