среда, 18 апреля 2012 г.

Сажаем Flashtool на диету.



Для телефонов Sony Xperia на база Android есть отличная программа для прошивки под названием Flashtool. Программа умеет прошивать образы стоковых прошивок и кое-какие дополнительные функции. Написана она почти полностью на Java и денег за своё использование не просит. При всех этих достоинствах у нее есть один существенный недостаток - это её вес. В полной комплектации она весит аж 440 мегабайт, что при таком функционале довольно ощутимо.
Будем сажать её на диету.
Почему же она так много весит? Автор скорее всего пытался сделать её максимально стабильной и независимой от системы. Для этого в папке "x10flasher_lib" кроме бибилиотек самой программы расположилиз аж 4 версии Java-машины: x86 и x64 для Windows, x86 и x64 для Linux. Версия у них одинаковая - 1.6 u31. Да еще наверняка в системе стоит своя версия Java-машины. Поеэтому первым делом пустим под нож встроенные махины и удалим папки "linjre32", "linjre64", "winjre32", "winjre64". Таким образом мы освободили аж 377 мегабайт. Но это еще не всё. При этом сама программа непотеряла работоспособность, а начала просто использовать системную Java-машину.
Тут есть одна тонкость. Встроенный загрузчик "FlashTool.exe" у меня не захотел работать с новой версией JRE 1.7 и постоянно кричал, что Java-машина у меня не установлена. Поэтому рекомендую остановить на JRE 1.6 u31 с сайта www.java.com.
Я немного подумал и написал свой загрузчик, который берет информацию об установленных машинах из реестра и запускает нужную. Взять саму программу вместе с исходными текстами можно по адресу: http://radjah.ucoz.ru/rar/flashtool.rar
Скорее всего установка Flashtool производилась, чтобы прошивать какую-то определенную модель телефона, а не всё под ряд. В этом случае можно удалить файлы, которые относятся к другим моделям из папки "devices". В моём случае я оставил только папку "WT19i", а всё остальное удалил. В итоге освободил еще 49 мегабайт.
Теперь остались чисто косметические изменения.
Из корневой папки программы удаляем всё, что не относится к Windows x86:
  • FlashTool
  • FlashTool64.exe
  • FlashToolConsole
  • uninstall.exe
Теперь еще раз заходим в папку "x10flasher_lib" и добиваем остатки:
  • adb.linux
  • adb.mac
  • fastboot.linux
  • fastboot.mac
Всё, теперь зачистка закончена. В качестве финального штриха можно упаковать всё, что осталось от программы, в архив или установщик.
У меня от программы осталось 55 мегабайт. При этом она работает как полноценная версия.