Jump to content

    

EIKA

Участник
  • Content Count

    33
  • Joined

  • Last visited

Community Reputation

0 Обычный

About EIKA

  • Rank
    Участник

Recent Profile Visitors

800 profile views
  1. Ребята, победа! И я бы брутнул эту комбинацию с клавиш еше на выходных, если бы знал, что Power нужно отпускать! Увы, я это понял только вчера ночью, когда тренировался входить в Factory Reset. То есть, все попытки брута до этого, включая верные комбинации, просто бы не сработали :( В общем, владельцы SiteMaster, не повторяйте моих ошибок: 1. Не берите большие флеш-карты. 32ГБ на аптейде убивают прибор. 8 ГБ еще работают. 16 ГБ пробовать не буду, извините. 2. Если вы убили прибор, но бутлоадер жив, то вход в бутстрап такой: 4 + 5 + 6 + Power (кратенько коснуться на пару секунд и отпустить посоледнюю кнопку; первые три - держать!). Спасибо всем, кто не был безразличен и пытался помочь. Я очень ценю такую помощь, и уверен, она вернется вам добром. Всех обнял и ушел в закат!
  2. В этом случае полностью согласен. Код, видимо, этот. Но ясности с клавишами он не добавляет: do { if ( v12[5] | (v12[6] << 8) | (v12[7] << 16) | (v12[8] << 24) ) { ++v14; if ( !v13 ) v11 = 1; } v15 = v12[9]; v12 += 9; v13 = v15; } while ( v15 != 255 ); v16 = v14 == 1; if ( !v11 ) v16 = 0; if ( v16 ) { DebugPrintf("Factory Reset requested. \r\n"); return 27; }
  3. Factory Reset нормально вызывается через ESC + Power On, но висит с тем же экраном Loading OS..., но внизу с припиской Applying Factory Reset. 12 минут так висело, выключил, так как явно эта функция тоже не работает и желает чтобы была ОС.
  4. Спасибо за оттвет. Но это чутка другое. Это запрос режима Reset, когда стираются файлы калибровки тач-скрина и прочее. Как это было 15 лет назад во времена КПК. У меня проблема глубже. И я забыл об этом написать, моя вина. При обновлении прошивки, которая выполнялась минут 10, не нашелся файл SM-L (насколько я понял, это образ WinCE). Хотя на флешке, с которой выполнялся апгрейл, он есть и он целый, и у него верная CRC. По какой-то причине СайтМастер не смог его подцепить. То есть, апгрейд что-то там делал минут 10, а потом написал следующее: Таким образом, как я подозреваю, у меня на флешке сейчас СайтМастера нет образа ОС. А бутлоадер выполняет нормальный старт. ОС в устройстве Windows Embedded CE 6.0 Core.
  5. Какие отговорки, я написал, что поддержки клавиатуры нет даже в работающем приборе! Нет в этом устройстве драйвера клавиатуры даже в Windows! Что непонятного?
  6. Я нарисовал в теории, но с учетом того как эти кнопки называются и что делают в коде. Вероятность достоверности 99% и более. Потому, что вариантов других нет. Плата пока НЕ осмотрена. Я лишь говорю о том, что шифта нет на мембране / резине. Даже если шифт есть на PCB, его придется коротить перемычкой. Валкодер уже мимо кассы, так как его нет в кеймаппинге, да и он не нужен. Тем временем добрый человек нашел единственный кусок кода, который вызывает бутстрап (отдается код возврата 0x1C8). v8 = 0; do { if ( *(KeyMapping + 5) | (*(KeyMapping + 6) << 8) | (*(KeyMapping + 7) << 16) | (*(KeyMapping + 8) << 24) && (*(*(KeyMapping + 1) | (*(KeyMapping + 2) << 8) | (*(KeyMapping + 3) << 16) | (*(KeyMapping + 4) << 24)) - 0x34) <= 2u ) { ++v8; } v9 = *(KeyMapping + 9); KeyMapping += 9; } while ( v9 != 255 ); if ( v8 == 3 ) { DebugPrintf("Request to launch Bootstrap.bin received.\r\n"); return 0x1C8; } По этому коду видно, что bootstrap.bin вызовется когда v8 будет равно 3. А случится это когда вот это условие выполнится 3 раза: if ( *(KeyMapping + 5) | (*(KeyMapping + 6) << 8) | (*(KeyMapping + 7) << 16) | (*(KeyMapping + 8) << 24) && (*(*(KeyMapping + 1) | (*(KeyMapping + 2) << 8) | (*(KeyMapping + 3) << 16) | (*(KeyMapping + 4) << 24)) - 0x34) <= 2u ) Итого, в уравнении остается одна-две неизвестных: 1. Это байт из "карты клавиатуры KeyMapping" (который указывается через +, например, +5, +6, +8). А откуда брать содержимое байта, не понятно. 2. И это некий адрес в памяти 0x34. Который, видимо, "железный". Ответив на эти вопросы можно будет получить названия кнопок, которые вводят в бутстрап. Есть тут местные гении? Ну, ребят, давайте напряжемся и получим суперпри$$$!
  7. Кеймаппинг верный вот такой. Шифта на кнопках по итогу нет :(
  8. Так тут USB же реализован в WinCE, бутлоадер то как ее распознает? Никакого обычного PC там нет. Это какой-то OMAP ARM + WinCE. Более того, клавиатура не распознается даже в WinCE на рабочем приборе.
  9. Доступ ко второму аналогичному прибору как может помочь?
  10. Вот тут непонятно. Если попытаться расписать все клавиши 1 к 1, то Back и Shift прикрутить однозначно некуда. Но остаются свободными вполне себе работавшие клавиши Auto Scale и Hold/Run. Либо asc_* - это Auto Scale и Hold/Run (и валкодер вообще не участвует в кеймаппинге). И тогда методом исключения выходит, что Back и Shift вообще не выведены на панель.
  11. Загрузчик, как я понял, называется SPL. Еще есть некий CPL - он виден как черный экран CPL V1.4 при выключении прибора. Так вот, в SPL есть скрипт cpl.losh, где видно ветвление между режимами работы: #***** cpl.losh *****# # # #**********************# #***** Init the display *****# #video-init sonic 16 # New warm boot attempt - pull warmBoot variable value from the .var file load-var /cpl/bootInfo.var echo "warm boot is $bootInfo" #save the warmBoot value to memory where the CPL can access it w /b 0x8000040c $bootInfo #***** Load and execute the CPL binary *****# #echo "Loading cpl.exe..."; load elf /cpl/cpl.exe #echo "jumping to /cpl/cpl.exe..."; jump # The CPL.exe returns execution to LoLo at this point. # It's return value will be resident in the $? LoLo variable. bootMode = $? echo "boot mode is $?"; #***** Show the full screen splash *****# bitmap /cpl/anritsu.bmp #***** Add additional bitmap display based on the cpl.exe's return value *****# if ($bootMode == 0x000001c8) # Bootstrap mode # Bitmaps size = 235 X 23 # Note: the x axis size needs to be slightly less than original our you'll see a bar at the end of the bitmap. bitmap /cpl/Bootstrap.bmp 25,445 259,468 #echo "Loading Bootstrap.bmp"; else if ($bootMode == 0x00000008) # Master Reset # Bitmaps size = 222 X 25 # Note: the x axis size needs to be slightly less than original our you'll see a bar at the end of the bitmap. bitmap /cpl/MasterReset.bmp 25,445 245,470 #echo "Loading MasterReset.bmp"; else if ($bootMode == 0x0000001b) # Factory Reset # Bitmaps size = 222 X 25 # Note: the x axis size needs to be slightly less than original our you'll see a bar at the end of the bitmap. bitmap /cpl/FactoryReset.bmp 25,445 245,470 #echo "Loading FactoryReset.bmp"; else #echo "No additional bitmaps need loading"; endif endif endif #***** Turn on the display now that our bitmaps are up *****# video-on #***** Save the CPL's return value so the application can inspect it. *****# w /w 0x80000408 $bootMode #***** Load and execute the WinCE image file *****# loadfile = "/cpl/NK.bin" if ($bootMode == 0x000001c8) loadfile = "/cpl/bootstrap.bin"; endif echo "load file set to $loadfile" load bin $loadfile loadfailed = $? if ($loadfailed) echo "Failed to load $loadfile"; else #echo "Launching $loadfile..."; # Launch the CE image (bootstrap or main) exec; endif echo "Returned from launching $loadfile..."; LoLo - это, видимо, бут-менеджер. И прибор у меня сейчас завис на этом этапе: #***** Show the full screen splash *****# bitmap /cpl/anritsu.bmp А мне надо попасть сюда: #***** Add additional bitmap display based on the cpl.exe's return value *****# if ($bootMode == 0x000001c8) # Bootstrap mode cpl.exe возвращат код для LoLo, но от чего зависит код ответа - не понятно. Сама картинка Bootstrap (см. выше) и фрагменты бутстрап-кода в прошивке для 331L есть. То есть, вопрос только в том, как его вызвать. В файлах есть еще интересные упоминания типа: frmBootstrap_KeyPress frmBootstrap_KeyDown Еще есть какой-то тест клавиш бутстрапа? Это тестирование кнопок - работает ли мембрана - что ли без загрузки ОС? BOOL TestBootstrapKeys() { unsigned __int8 *KeyMapping; int counter; int v3; if ( KeyMapping[0].code == 255 ) return 0; counter = 0; do { if ( KeyMapping[5] | (KeyMapping[6] << 8) | (KeyMapping[7] << 16) | (KeyMapping[8] << 24) ) { if ( (*(KeyMapping[1] | (KeyMapping[2] << 8) | (KeyMapping[3] << 16) | (KeyMapping[4] << 24)) - 0x34) <= 2u ) ++counter; } v3 = KeyMapping[9]; KeyMapping += 9; } while ( v3 != 255 ); return counter == 3; } Тут мы не поняли что именно делает код. Да и вряд ли он имеет прямое отношение к выбору меню загрузчика. А тут видно, что у прибора всего 22 физических контрола: .data:860074CC ; KEY_MAPPING KeyMapping[22] .data:860074CC KeyMapping KEY_MAPPING <0, aEsc, 0> .data:860074CC KEY_MAPPING <3, aLeft, 0> .data:860074CC KEY_MAPPING <4, aRight, 0> .data:860074CC KEY_MAPPING <5, aDown, 0> .data:860074CC KEY_MAPPING <6, aUp, 0> .data:860074CC KEY_MAPPING <0x10, a9, 0> .data:860074CC KEY_MAPPING <0x11, a7, 0> .data:860074CC KEY_MAPPING <0x12, a6, 0> .data:860074CC KEY_MAPPING <0x13, a5, 0> .data:860074CC KEY_MAPPING <0x14, a8, 0> .data:860074CC KEY_MAPPING <0x15, a4, 0> .data:860074CC KEY_MAPPING <0x23, aShift, 0> .data:860074CC KEY_MAPPING <0x25, asc_860071EC, 0> .data:860074CC KEY_MAPPING <0x26, aBack, 0> .data:860074CC KEY_MAPPING <0x30, a0, 0> .data:860074CC KEY_MAPPING <0x31, a1, 0> .data:860074CC KEY_MAPPING <0x32, a3, 0> .data:860074CC KEY_MAPPING <0x33, aEnter, 0> .data:860074CC KEY_MAPPING <0x34, asc_8600720C, 0> .data:860074CC KEY_MAPPING <0x35, a2, 0> .data:860074CC KEY_MAPPING <0x45, aMenu, 0> .data:860074CC KEY_MAPPING <0xFF, 0, 0> Дальше нашли что-то более загадочное, а именно: TestForSecretKeypresses в котором внутри есть Master Reset requested, Factory Reset requested, Standard Boot requested. Первые две строки есть в обычном юзерском меню S331L. А последнее - это, видимо, банальная перезагрузка. Разрабы предусмотрели кучу логов, в том числе то, что нужно. Но как до них добраться? DebugPrintf("Request to launch Bootstrap.bin received.\r\n"); return 456; В общем, я выкладываю образ апгрейда (он же является полноценным образом для развертывания с нуля). Если кто-то готов в этом разобраться и выдать результат, такая работа будет оплачена.
  12. Я попробую, конечно. Но вряд ли. В СайтМастерах в новых корпусах аккум несъемный. В них в отличие от классики Виллтрон A/Анритсу B/D нет отсека с лючком. И другая ОС. И другое назначение всех кнопок (в сравнении приборами того же времени, но другого назначения, типа VNA/BTS). Это по сути совсем новый прибор, и называли его 331-ым маркетологи, чтобы люди привыкали к 331-му. Но общего с D у него только эмуляция старого интерфейса через картинки для Win CE (КПКшная эмбеддед винда от Майкрософт). Ценник прибора вроде ближе к 7к.
  13. Спасибо за подробный ответ! По шагам. 1. В траблшутинге и ММ нет. Почему - не понятно. Думаю в районе пн-вт станет ясно из ответа производителя. 2. Брутить на 22 контролах из которых могут использоваться 19 весьма сложно. Я пробовал похожие и очевидные, результат ноль. 3. Бинарники уже копнул кулхацкер, они открытые и там много чего про бутстрап. Есть вызовы функций из меню загруженной ОС, тесты клавиш бутстрапа, но комбинацию через power on найти не удалось. 4. Вскрывать очень не хочу, но если бут будет на перемычке, придётся ;( 5. Менять часть прибора точно не буду, как как не приемлю приборы без элаймента. Но вообще я в шоке. Как так можно выпускать приборы без бутстрапа и такие кривые апдейты без защиты от ошибок и дураков. Уроды, мля ;(
  14. Я ему написал, но они отмороженные. Уже был опыт общения с ними. Тикет, а там: какая страна, у кого покупали, какой серийник... Ууууу, так вам не положено общаться с US / UK. Вам в Питер в "Радар" или "Дататест". А там 200-300 тысяч за замену платы (конечно же, при этом никакая замена платы не была нужна). В общем, судя по предыдущему опыту, крайне не юзер френдли бренд.