Решил я развеять слухи о том что зыза 3000 преходит в сервисный режим с порта USB. Во первых, что бы активировался порт USB должен стартануть ЦП..., а он ну ни как не может это сделать на брикнутой консоли Далее я просто зацепил крутой осциллограф к среднему выводу батарейки пандора и воткнул её в 3000 брик и записал их разговор. Известно, что со старой батарейкой 3000 не стартует....но ....смотрите сами http://www.youtube.com/watch?v=T4mQofU37sg, что записал осциллограф. Короче зыза общается с батарейкой упорно на предмет получения ключика для перехода в сервисмод. Делаем выводы....нужен ключик для перевода 3000 в сервис мод, но, он не FFFFFFFF.....а какой? какие будут предложения по подбору ключика? Кто силён в написании прог под винду. Нуно сварганить прогу что бы она по USB через микруху МАХ232 эмулировала флешку батарейки ....со всеми вытекающими последствиями. А точнее сгенерила ключик и дала команду электронному ключу на вкл батарейки....посмотрели... нет сервисмод у 3000....отключаем батарейку...генерим новый ключик ...и так далее до победного конца. Кто готов написать такую прогу? Электронную начинку я беру на себя .
Boryan добавил 20-04-2010 в 11:33
народ давай подтягивайтесь в тему. неужели не интересно мозгами поработать? Мои мысли по поводу батарейки для 3000....что могли в ней изменить Сони? Применить другой ключик...слишком просто...перебрать 4 байта учитывая что код только может быть типа 0хAA AA AA AA или 0хАВ АВ АВ АВ, это не сложно. Это не в правилах Сони...уж если рубить концы, то конкретно. Я думаю что они тупо увеличили код до 8 байт, и он так и остался 0хFF FF FF FF FF FF FF FF. Что это даёт? Во первых, процессор стандартной батарейки не может дать зызе код длиннее 4 байт, а вот их специальная батарейка может выдать код длинной 8 байт. В итоге... и волки сыты и овцы целы... Мужики, подумал я тут и понял эмулировать флешку батарейки пока рано. Нужно написать прогу снифер под винду, ну типа писать протокол обмена с батарейкой. Записать один протокол с 2000 а второй с 3000, и сравнить команды запроса на серийник, если они одинаковые то возможно ключик так и остался 4 байта, и тогда перебор нам поможет. А вот если разные...то нужно думать как заставить батарейку выдать 8 байт.....или тупо заставить прогу снифер поработать за батарейку и отвечать за неё ...ведь если будет записан протокол, то что нам составит труда выплюнуть его обратно с нужным нам ключиком?
Код Описание Данные Ответ от батареи Примечание
0x01 запрос оставшегося заряда нет energyleft_mAh:u16
0x02 запрос температуры нет temperature:u8 cercius degree, min/max value unknown
0x03 запрос напряжения нет voltage_mV:u16
0x04 запрос тока нет current_mA:short positive if charging battery
0x07 запрос ёмкости нет capacity_mAh:u16
0x09 запрос оставшегося времени нет timeleft_min:u16 XMB showing not this value
0x0c запрос серийного номера нет serialno:u32 suspected
0x80 запрос аутентификации? 9byte 16byte encrypted data/reply
0x81 запрос аутентификации? 8byte 8byte encrypted data/reply
0x05 ответ от батареи нет NAK, BCC error and so on??
0x06 ответ от батареи да ACK, with reply data
То есть, последний байт в каждой строке никакой нагрузки не несёт.
Он только выступает, как корректирующий байт контрольной суммы.
И добавляется соответственно, чтобы уравнять контрольную сумму к первому байту.
Похоже, что так.
Надо бы посмотреть дамп батарейки. А что если туда вставляем серийник, а контрольная сумма не сходится. Отсюда происходит ошибка и сбой.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 22.04.2010 в 18:33.
То есть, последний байт в каждой строке никакой нагрузки не несёт.
Он только выступает, как корректирующий байт контрольной суммы.
И добавляется соответственно, чтобы уравнять контрольную сумму к первому байту.
Похоже, что так.
Надо бы посмотреть дамп батарейки. А что если туда вставляем серийник, а контрольная сумма не сходится. Отсюда происходит ошибка и сбой.
Кроме последнего байта кс,
думаю что первый (кроме хидера) байт $06 - это просто положительный
ответ на запрос.
В длинном запросе наверняка есть направляющие адреса
на дамп в батерейке, поэтому не плохо былобы видеть дамп из
батарейки.
кс не может не сходится, это протокольная кс она служит
только для проверки целостности пакетов в протоколе связи.
stasik007, Выложи дамп своей батарейки сюда...я тебе говорил как его снимать.
ЗЫ Для инфы, что бы знали кто такой Стасик это мой коллега по работе Завтра ему передам 3000 для изучения...вот думаю логи будут очень интересные .... а сам буду продолжать аппаратно изучать 3000...
Последний раз редактировалось Boryan; 22.04.2010 в 18:59.
запрос 01 это проверка заряда,
в логе даже видно как напряжение меняется
вначале и в конце
вначале с201(49665) потом с100(49408)
можно было бы вычислить множитель,
но я не знаю нормальный заряд батарейки в псп)
--------
00 в начале и конце это брэйки порта для открытия сессии
снова опечатка ???? - вначале с210 (49680) потом с200 (49664)- из-за нее сразу не въехал о чем речь - потом разложил запросы ответы и понял...
с сервисной батарейкой
5A 02 01 A2
A5 05 06 10 9B 06 9E
5A 02 01 A2
A5 05 06 10 9B 06 9E
5A 02 01 A2
A5 05 06 00 9B 06 AE
и с обычной
5A 02 01 A2
A5 05 06 10 C2 06 77
5A 02 01 A2
A5 05 06 10 C2 06 77
5A 02 01 A2
A5 05 06 00 C2 06 87
Но вот заряд ли это - странно что на двух разных батарейках одинаковое проседание 10(16) - неужели первичное включение столько энергии сжирает или тут что то другое....
К Стасу вопрос - какая батарейка была лучше заряжена на момент эксперемента и снятия инфы... Если мы правы то сервисная была более разряжена чем обычная...
вот дамп - только серийник поменялся после того как я запандорил и распандорил
0807FFFF320DFFFF50000A000B00171AFFFF58E7FFFF640296030807FFFFFFFFFFFF0F000807FFFF 0000640000FF00000000B804FFFFFFFFFFFFFFFFFFFFFFFF050F1E32411E283741555F5A57555361 5E5C5A5864625E5B596764615E5C6C6B696661375A5F555F55503CF600DA00BF00F600DA00BF00B5 01480111018B91959EA2A8C2D200050A141E32505E940374034D032003ED02B5027A023D020002C5 018C0158012901FF00DA00BA00E14B5A581964F401646408190805054682D237461E643237C82832 415E5F60050F1E32411E23282F374155887469646289776C68648B7D6E6A668C84736C698D887873 6E908C878179918F8B8682FFE700E700
сервисная батарейка 100%
обычная 60-75% примерно
Последний раз редактировалось stasik007; 22.04.2010 в 19:07.
ANDPSP,посмотри логи с первой страницы и
станет более понятно, что stasik007 просто не заряжал батарейку..
впрочем не настаиваю, надо более внимательно посмотреть.
0AF540D4 судя по первой странице, вот такой номер у батарейки.
-----------
вообще, по серьезному псп с батарейкой общается..))
крипт скорее всего, в длинных пакетах, единственная пахожесть,
начало на $8000, возможно 2 байта ключа, или направляющие.
lport3, 0AF540D4 сомневаюсь. Это-же дамп батарейки, а позиции серийника известны.
$8000 - мне кажется адресация памяти. Обычно по этому адресу кэшируются данные, вернее с 0х80000000.
Сообщение от stasik007
Кто знает терминалку - чтоб в бинарник писала !??
Если в консольной терминалке, то команда вывода в файл:
> file.bin 2>&1
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 22.04.2010 в 20:31.
lport3, так это байты с терминала. Там серийник уже складывается по другому.
А здесь он выложил дамп чипа памяти батарейки. Он состоит из 256 байт.
Серийник записывается по адресу 0х0F, 0х0E, 0х13, 0х12
Он же говорит, что сначала пандорил, а потом распандорил и прописался уже другой серийник.
В памяти батареки постоянно меняются данные. Они там записываются и корректируются со временем, чтобы делать калибровку батареи по мере старения.
Так-же, у меня были данные, где записываются данные о циклах заряда/разряда и состоянии заряда батареи. Просто винт сгорел и всё потерялось. Но это не трудно заново вычислить...
Нужно зарядить батарею на 100% и снять дамп. Потом разрядить её, пока не упадёт на одно деление и снова снять дамп, и ещё раз, разрядить на деление и опять снять дамп. После сравнения видно будет, в каком месте это меняется и записывается.
Так-же можно вычислить циклы заряда. Поставить на зарядку, будет гореть оранжевый огонёк и снять дамп. Как загориться красный огонёк, ещё раз снять дамп. Ещё когда горит зелёный, тоже снять дамп и все эти смещения можно вычислить.
Таким образом круг поисков сузится.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 22.04.2010 в 20:45.
А я думал, он дал дамп с эфками в номере,
а "номер поменялся" - имеется ввиду после пандоры.
Чтобы понять что-куда в протоколе надо десятки логов,
и и-то это определит только направление для поиска.
То, что лежит в еепроме - полбеды, есть контроллер а у него
своя прошивка. Вот если ее слить и раздизить, тогда
считай дело в шляпе. А так, видится мне это малоперспективным.
lport3, вот смотри. Упирается всё в том, что мы пока точно не знаем, какой серийник должен быть в ответе. Не знаем какой длины и возможно вообще сменили в 3000 его месторасположение.
А если мы запишем серийник и снимем дамп памяти батареи, то будем знать каждый байтик.
Теперь, мы терминалом снимем такой-же опрос батареи, но уже на 3000 модели. И точно так-же, как я выше разложил всё по полочкам, разложим разговор терминала.
Мы точно вычислим, какую область памяти батареи отсылается в ответе в качестве серийника. И найдём в дампе эти байты. То есть, мы уже теоретически точно можем подтвердить местонахождение и длину серийника.
А по коду запросов-ответов можем составить картину сервисных ответов или обычных, сравнив с уже имеющимися.
Я уже прикинул, что коды идут однобайтовые (3-ий байт). И их не так уж много. В ответ возвращается код 06, а за ним данные, не считая последнего байта.
Рассмотрим первую строку: 5A 02 01 A2
Тут всё ясно...
5A - хедер запроса
02 - длина строки в байтах
01 - однобайтный код запроса (они пронумерованы по спецификации)
A2 - последний байт корректирующей контрольной суммы
Заметь, в ответ всегда батарея вставляет код 06
Серийник батареи запрашивается кодом 0С
Кодом 80 запрашивается может заряд батареи и в ответ получает 16-байтный код. Скорее всего код двубайтный 80 08.
После второго опроса серийника уже запрашивается другой код 80 02, т.е. вероятно после второй проверки, убедившись в правильности, срабатывает следующая инструкция.
Кодом 81 08 возможно запрашивается цикл заряда и возвращается 8-байтный код.
Затем переходит на другую схожую инструкцию 81 0A
И остались коды 02, 03, 04, 07, 09 и 0B. Вот и вся арифметика =)
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 22.04.2010 в 21:47.
Из того что я увидел в логах выше.
адрес псп - 5A, адрес батарейки A5.
общая контрольная сумма пакета FF.
Описание пакета в протоколе -
1.адрес
2.длина пакета(-1)
3.команда запроса(для псп), ответ (для батейки)
4.байт коррекции суммы пакета до FF
Команда запроса в псп -
1. команда чтения локальных идентификаторов, 1 байт.
2. команда обработки динамическими средствами. Первые 2 байта команды являются неким ключем,
определение ключа > $80$00
Ответ батарейки -
1. первый байт $06 - предположительно, позитивный
ответ.
Предполагаю, команда
$0C - серийник батарейки (почти точно).
$01 - напряжение батарейки, возможно
используется как напоминание связь
онлайн (это мое предположение)
Остальное пока что не понятно.
--------------------
кстати, так и не сказали мне какое напряжение, ток на батарейке?
Последний раз редактировалось lport3; 22.04.2010 в 21:55.
то что команда $01 это напряжение батарейти,
только предположение.
--------------------
кстати, так и не сказали мне какое напряжение, ток на батарейке?
если вы параметры батарейки скажете, мне будет проще,
псп сейчас рядом нет, чтобы посмотреть. Если будут известны параметры
то возможно я смогу описать команду 01 точнее.