PDA-версия форума ASUSMobile.RU

Поиск - Профиль - Войти и проверить личные сообщения - Вход - Регистрация
Форум Asus Mobile Club Russia > Полезное > Раздел Разработки прошивок WM6.5.x > Нулевой слот (DevHealthAnalyzer v2.0)

На страницу 1, 2, 3, 4, 5  След.
[Ответить на тему]

ultrashot [28.02.11, 21:04] Нулевой слот (DevHealthAnalyzer v2.0):
Не буду вдаваться в подробности, как организована виртуальная память в WM, т.к. это уже не раз было описано на просторах интернета. Кратко - чем меньше свободного места в нулевом слоте, тем меньше кучи (Heap'а) может выделить процесс, тем ниже стабильность.

Для определения текущего состояния виртуальной памяти нам потребуется провести некоторые измерения. Последовательность действий такая:
1) Если прошивка собиралась через OSBuilder, нелишним будет DumpMap.txt, созданный при сборке прошивки. Он есть в папке Temp, но следующие версии билдера научатся выносить его в отдельную папку.
2) Запускаем DevHealth.exe на телефоне. Ждём несколько минут, получаем файл \Storage Card\mem_%порядковый_номер%.txt.
3) Используем DevHealthAnalyzer.exe.
а) при запуске выбираем создание карты виртуальной памяти
б) копипастим логи DevHealth и DumpMap
В итоге получаем достаточно объективную информацию о состоянии виртуальной памяти.

Как интерпретировать полученную карту? Пример:

Как видим, nullcam.dll имеет всего-то 8 r/w блоков, а зарезервированных областей памяти у этой библиотеки - на 92 кб.
Reversmod будет полезен в данной ситуации (напомню только, что не все библиотеки вообще можно превращать в модули). После данной операции модуль будет использовать столько памяти, сколько ему нужно, и ни на грамм больше.

Вообще, по карте сразу видно, какие библиотеки всегда в памяти, а они - кандидаты для reversmod'а.

По своему опыту - можно запросто увеличить пространство нулевого слота мега этак на четыре, а это уж точно лишним не будет.

P.S. Есть способ убрать некоторые библиотеки из карты вовсе. Для этого надо расшарить r/w секции некоторых модулей. Расписывать методику не буду, так как она требует проведения кучи тестов библиотек на работоспособность.
P.S.-2. Спасибо всем за логи DevHealth, они очень помогли отладить программу.

v2.0 (15.05.11):
-изменён формат генерируемых карт (возможность открытия старых карт оставлена).
-больше различной информации.
-улучшен интерфейс.

Скачать v2.0
Не забывайте бэкапить свои наработки перед внесением каких-либо изменений.

[Ответить на тему]   Ответить с цитатой   
Barin [28.02.11, 21:12] :
ultrashot писал(а):
Есть способ убрать некоторые библиотеки из карты вовсе. Для этого надо расшарить r/w секции некоторых модулей

И это действительно работает!

Автору идеи - респект! Drinks or Beer

[Ответить на тему]   Ответить с цитатой   
AndrewSh [28.02.11, 21:13] :
Хотел бы выразить признательность автору темы и DevHealthAnalyzer-а!
Благодаря его разработкам мне за сутки удалось напилить 2 лишних мегабайта в слоте 0 - и я еще не закончил работу...
Вторая благодарность уходит Barin-у за помощь с расшариванием и прочее!!!
P.S. Напилил 3 Мб - в слоте 0 свободно 27 292 кб - полагаю, пора остановиться icon_smile

[Ответить на тему]   Ответить с цитатой   
dmi1682885 [01.03.11, 07:35] :
AndrewSh писал(а):
P.S. Напилил 3 Мб - в слоте 0 свободно 27 292 кб - полагаю, пора остановиться

А сколько предел? Или как в ДМБ - "нет,препятствий патриотам..."
У меня просто до реверсмода на Манильных прошивках:

Переадресация модулей (WM6.5 Native kernel)...Ok - Свободно в слоте 0: 27648 Kb (00060000-01B60000)

На Титане:

Переадресация модулей (WM6.5 Native kernel)...Ok - Свободно в слоте 0: 29056 Kb (00060000-01CC0000)

Вот я и думаю? Делать реверсмод,или так хватает.

[Ответить на тему]   Ответить с цитатой   
AndrewSh [01.03.11, 09:31] :
dmi1682885
Я вообще-то не про те мегабайты писал, которые релокер при сборке прописывает... У меня на асусике путем рекмода и удаления лишнего слот 0 вообще был пустым icon_smile - согласно релокеру. Вот только реальная ситуация отличается от того, что релокер пишет. Прошивка - с пустым слотом собирается, только потом эта прошивка - на девайс грузится и в итоге столько всего интересного в слот 0 залетает - слов нет.
Вы DevHealth запустите, потом данные из полученного на карточке файла и DumpMap билдера - проанализируйте для оценки реального положения дел в слоте, и вот эти данные огласите.

[Ответить на тему]   Ответить с цитатой   
dmi1682885 [01.03.11, 09:56] :
AndrewSh писал(а):
и вот эти данные огласите.

Ещё бы найти эти данные icon_smile Через программу "прогнал", посмотрел,там кроме manila.exe всё в модулях

[Ответить на тему]   Ответить с цитатой   
AndrewSh [01.03.11, 10:00] :
dmi1682885
24000 кб по вашему отчету реально свободно. У меня до всех манипуляций было примерно то-же: 24240 кб. Надо пилить icon_smile Хотя - отчет в принципе - приемлемый. Не "отлично", но точно "хорошо".

[Ответить на тему]   Ответить с цитатой   
Владимир1973 [01.03.11, 10:03] :
Я так понимаю, что реальный размер нулевого слота надо смотреть в анализаторе? При сборке релокер пишет, мол, свободно 26624, а DevHealthAnalyzer 24768 Kb...а то я тут нареверсмодил для пробы, при сборке свободной памяти меньше стало, решил уточнить...
to Barin
Есть надежда на появление этой утилиты в OSBuilder?

[Ответить на тему]   Ответить с цитатой   
AndrewSh [01.03.11, 10:10] :
Владимир1973
теперь надо заняться расшариванием r/w секций.... Тогда можно реально освободить слот. Занятие это - занудливое и достаточно опасное..... Кухню я раз пять бэкапил..... И каждая либа требует отдельного внимания..... Если подтвердится при тестировании то, что я наковырял - потом дам примерный список. Кстати - у меня релокер пишет то же, что и у тебя - при сборке... Ну или там несколько кб туда-сюда.....

[Ответить на тему]   Ответить с цитатой   
ultrashot [01.03.11, 17:32] :
Владимир1973 дело в том, что загружаемые библиотеки тоже уменьшают объём нулевого слота, причём даже больше, чем в виде модуля. Модули занимают меньше, потому что между секциями нет ненужных "дыр"

[Ответить на тему]   Ответить с цитатой   
Владимир1973 [01.03.11, 21:18] :
ultrashot писал(а):
напомню только, что не все библиотеки вообще можно превращать в модули

Это точно...у меня в нулевой слот залетели длл'ки Resco Explorera...при попытке их реверсмода, напрочь отказался запускаться проводник...долгое и муторное это дело, но думаю игра стоит свеч...освободил до 27 метров, пробую дальше...
Drinks or Beer

Добавлено спустя 7 минут:

Есть ли некая методика какие библы можно реверсмодить, а какие нет? И насчёт cpl, как они отнесутся к этому?

[Ответить на тему]   Ответить с цитатой   
ultrashot [01.03.11, 21:34] :
Владимир1973 писал(а):

Есть ли некая методика какие библы можно реверсмодить, а какие нет? И насчёт cpl, как они отнесутся к этому?

Только тесты. В целом, я отреверсмоддил все сервисы от HTC, все маниловские библиотеки и т.д. А вот дрова на моём телефоне не очень хорошо воспринимают конвертирование в модули.
CPL можно реверсмоддить, я даже в чьих-то логах видел их. CPL, кстати, - обычные dll-ки.

[Ответить на тему]   Ответить с цитатой   
Maloy-x84 [01.03.11, 22:07] :
В принципе я всегда делал так: то, что постоянно висит в памяти, "перегонял" в модули, но благодаря этой проге буквально за один вечер разгрузил нулевой слот еще на 1.8 Мб. Буду эксперементировать дальше... icon_smile

[Ответить на тему]   Ответить с цитатой   
feropont [01.03.11, 22:27] :
Реально работает, по умолчанию на Цунаги было 25964 метра, после экспериментов 2,2 метра выжал... но как то все аккуратненько нужно без лишнего энтузиазма и широких шагов в сторону... icon_smile

[Ответить на тему]   Ответить с цитатой   
AndrewSh [01.03.11, 23:49] :
Господа, я конечно понимаю, что не в плюсах в репутацию счастье, и не могу настаивать, но неужели разработки ultrashot-а, кроме меня и Barin-а, нравятся только Maloy-x84 и alba19986?
Или все остальные воспринимают это как должное? Не стесняйтесь поблагодарить человека за его труд на благо нашего сообщества!




[Ответить на тему]   Ответить с цитатой   
dmi1682885 [02.03.11, 09:22] :
Около 2 Мб освободил,но,возник вот такой вопрос :откуда берутся эти "виртуальные dll" Поиск,их в упор не видит.


[Ответить на тему]   Ответить с цитатой   
AndrewSh [02.03.11, 09:54] :
dmi1682885
если вы говорите о sio.dll - она вовсе не виртуальная, а очень даже реальная - в OEMDrivers лежит. А если вы про NULL - так это и есть дыра, итерпретируемая автором программы как зарезервированная область памяти у этой библиотеки, и с которой (дырой) призван реверсмод бороться.

[Ответить на тему]   Ответить с цитатой   
dmi1682885 [02.03.11, 09:59] :
AndrewSh писал(а):
если вы говорите о sio.dll - она вовсе не виртуальная, а очень даже реальная - в OEMDrivers лежит.

Да,именно о ней.Просто странно,почему у меня это Поиск не обнаружил.Я по всей "кухне" искал.
Тьфу...забыл на "скрытые" натравить. После переустановки Винды,постоянно,чего то 2докручивать" приходится
feropont писал(а):
но как то все аккуратненько нужно без лишнего энтузиазма и широких шагов в сторону...
Это,да... при реверсмоде одной из библиотек SYS ,телефон завис на boot. Very Happy

[Ответить на тему]   Ответить с цитатой   
Mikhei777 [02.03.11, 20:42] :
Помимо CIF.dll и HTC3GVT.dll еще у каких-то модулей расшарили r/w секции без косяков? Может список будем составлять icon_smile

[Ответить на тему]   Ответить с цитатой   
AndrewSh [02.03.11, 22:12] :
dmi1682885 писал(а):
при реверсмоде одной из библиотек SYS

Одна из библиотек зовется rsaenh.dll icon_smile
Ее реверсмодить категорически не рекомендую.
Mikhei777 писал(а):
у каких-то модулей расшарили r/w секции без косяков?

У меня 39 либ перегнано в модули и 17 либ расшарено и еще 8 я собираюсь сегодня проверить на работоспособность.
На какой аппарат список писать собираешься, на Блэкстоун свой?

P.S. Расшаривание доп. либ - проканало нормально... Так что 39 -в модули и 25 расшарено...

[Ответить на тему]   Ответить с цитатой   

[Ответить на тему]

На страницу 1, 2, 3, 4, 5  След.
Форум Asus Mobile Club Russia > Полезное > Раздел Разработки прошивок WM6.5.x > Нулевой слот (DevHealthAnalyzer v2.0)