Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форумы PDA2U.RU _ Программы - Windows Mobile _ AutoInstall после Хард-Ресета. Medush SetupSystem

Автор: Medush 31.3.2009, 14:08

Все, кто хоть раз перепрошивал девайс, практически всегда сталкиваются с невозможностью автоустановки программ после Хард Ресета. Происходит это потому, что как правило набор предустановленных прог для автоинсталла из Storage жестко прописан в welcome системы.
Безусловно, есть универсальные установщики, но и они всего лишь копируют поведение стандартного алгоритма и сложны в настройке для среднестатистического пользователя.

Поэтому я озадачился написанием скрипта (работающего под MortScript) для АвтоИнсталла.
Главные задачи проекта:
- ФУНКЦИОНАЛЬНОСТЬ: Желательно предусматривающая все возможные "возжелания" юзера.
- ПРОСТОТА: Чтобы не нужно было ничего никуда прописывать, достаточно разложить по папкам то что хочешь и получить результат. Или легко настроить по желанию.
- ГИБКОСТЬ: если не устраивает ПРОСТОТА, дать возможность подстроить алгоритм под себя как частично, так и очень глубоко, практически полностью, но опять-таки с минимальными усилиями и знаниями.
- УДОБСТВО: мультиязычный USER-FRIENDLY интерфейс, выбор между "тихой" установкой или с выдачей сообщений. Отдельный скрипт с интерфейсом для интерактивной настройки SetupSystem без вникания в тонкости ручной правки ini - файла.

Предлагаю всем активно поучаствовать в обсуждении и разработке НАРОДНОГО алгоритма, сделающим наши с вами эксперименты с прошивками приятными и не требующими последующей долгой настройки девайса для приведения его к привычному "рабочему" виду. Чем активнее обсуждение, тем более удобный продукт получится!

Итак, мое видение функционала и, собственно, хода самого алгоритма Step by Step (все части (секции) алгоритма настраиваемы - Да, Нет, Спросить):

1. Поднятие из BackUp'a. Если файл бекапа - exe, то проверка даты создания и запуск наиболее свежего. Либо, если файлов несколько, то можно предоставить пользователю выбор. После Restore - предустановленный выбор: прерваться или продолжить выполнение (сразу или после ресета) - например если в бэкАпе только PIM и т.п.
2. АвтоУстановка программ. Проги могут быть упакованы в архив и (или) лежать кабами в папке \Скрипт\Programs. Допускается любая вложенность подпапок - раскладывайте ваши проги "по полочкам" как душе угодно. Если в папке лежит ConfigFiles.txt с описанием что ставить - тогда исполняем только его.
3. Копирование ярлыков. Как правило, у каждого из нас куча прог на карте, не требующие установки. А вот линки на них приходится кидать вручную. Исправляем ситуацию smile.gif В папке \Скрипт\Links раскладываем по нужным папочкам свои линки. Затем они с соблюдением структуры каталогов авто-переносятся в девайс относительно \Start Menu\ - что позволяет кидать ярлыки и в раздел \Settings. При наличии отрабатывается ConfigLinks.txt. Хочу также сделать возможность реорганизации начального расположения ярлыков после прошивки в \Start Menu\Programs в соответствии с личными предпочтениями каждого. Для обсуждения:нужен ли автоматический поиск установленных на карте программ и автоматическое же создание линков на них?
4. Копирование файлов. К примеру, можно автоматически скопировать любимые мелодии звонков, либо нужные конфигурационные\регистрационные и прочие файлы куда угодно. Файлы кладем в \Скрипт\Files создавая структуру каталогов относительно \My Device. Для O2 XDA Flame реализовал чтение реальных названий Storage и Storage Card из реестра. По остальным девайсам нужны ключи реестра, где хранится данная информация, пожалуйста присылайте. Это нужно для того чтобы копирование происходило именно туда куда нужно даже при неразлоченной \Storage.
5. Импорт нужных ключей в реестр. Файлы *.reg кладем в \Скрипт\Reg.
6. Тюнинг системы. Применение любимых настроек (как всегда - с предопределенным выбором Да/Нет/Спросить/ConfigTuning.txt). Данный раздел - для АКТИВНОГО обсуждения!!! Присылайте наиболее универсальные и полезные настройки системы (сразу пишем для какой оси)! Например, уменьшение ширины скроллбарови т.д. и т.п.
Здесь же хочу реализовать автоустановку предустановленных: TimeZone и региональных стандартов. Плюс автоматическую синхронизацию времени с Time-сервером.

Прошу высказывать свое мнение относительно функционала и алгоритма.

Итак, Medush SetupSystem. Находится в активной разработке. Текущая версия: 0.3.
Реализовано (по пунктам алгоритма) :
1. Диалог для поднятия из резервной копии - выбираете файл или вашу backUp-программу, выбор передается на выполнение.
2. В каталоге с программами (переименовал в \Cabs - так вроде понятнее smile.gif ) Создается и автоматически обновляется при установке файл SetupLocation.ini со списком ваших кабов. Можно создать принудительно, запустив \Scripts\CreateCabsList.mscr Открываете в любом текстовом редакторе и правите, удобнее на ББ. Все что указано в секции [Main Memory], ставится автоматом. Остальное ПОКА с выдачей системного диалога по выбору места установки.
3,4 Реализованы, пока без поддержки Config____.txt.
5. Реализованы импорт *.reg и *.xml
6. Пока не приступал.
Также пока не реализовал возобновление работы скрипта в случае случайного ресета девайса пользователем после установки одной из программ.

Распаковываете архив в любое место по выбору. Если в системе не установлен MortScript, запускаете файл MortScript.exe из соответствующей директории. Он пропишет ассоциации с файлами *.mscr
Далее можно выполнять сами скрипты:
Главный - AutoInstall.mscr В \Scripts\ вынесены все скрипты по обработке отдельных частей алгоритма, сделал их не зависимыми от главного скрипта, т.е. вы можете запускать их все по отдельности. Все скрипты читают установки из Autoinstall.ini - покопайтесь, там можно менять ход алгоритма.
Каждая секции алгоритма смотрят соответствующие ключи: Yes - выполняется, No - пропускается, Ask - спросить у пользователя.
Там же параметр ShowMessage - сейчас стоит Yes и выдаются все сообщения. Когда попробуете работу скрипта и поймете ход выполнения, смело ставте No и АвтоУстановка будет работать автоматически, запрашивая только критические моменты.

Доступны два языка: Русский и Английский. Любые другие - создаете новый каталог в \Scripts\Localization\, имя каталога=названию языка, внутрь кладете правленный под конкретный язык Language.ini. Все. Язык будет доступен автоматически в диалоге выбора языка (для этого включить в AutoInstall.ini параметр LanguageChoiceDialog=Yes

Тестируйте, пишите.

НОВАЯ ВЕРСИЯ!
- полноценный импорт reg и XML
- в \Cabs (бывшая \Programs) теперь генерится файл SetupLocation.ini
Все что в нем в секции [Main Memory] - ставится в полном автомате



Medush SetupSystem ver.0.3.
 Autoinstall_v.0.3.zip ( 962.02 килобайт ) : 51

Автор: Medush 31.3.2009, 14:21

В результате тестирования выявил:
1. При использовании регионального языка скрипта в WWE прошивках сразу после ХР, вылезают кракозябры из-за несоответствия кодировок. Ситуация исправляется выставлением региональных настроек.
2. У нас на O2 XDA FLAME ну просто ОГРОМНЫЙ Storage smile.gif Посему логично желание устанавливать часто используемые и весомые по объему программы именно туда (как то Resco и т.п.). Но пока не открыть сторадж, он недоступен. Открытие Storage происходит с Софт-Ресетом. (кстати, копирование файлов туда доступно в любое время smile.gif )
Посему вижу следующию корректировку алгоритма:
1. Pre-Config System: установка TimeZone, Regional Settings, открытие Storage и выставление при необходимости параметра AskFolderForInstall - выбор конкретной папки при установке программ. Кому еще что-то требуется, пишем!
2. ПРограммный Soft Reset
3. Автоматическое возобновление работы SetupSystem.

Автор: MayBe 31.3.2009, 18:27

А чем предлагаемый функционал отличается от SASHIMI AutoInstaller RAW Edition кроме наличия русского языка?
(SASHIMI = Specialized Automation Script for HTC Installations, MortScript Initiated)
Ссылочки:
http://4pda.info/index.php?newsid=3440 (рус)
http://www.winmo-experts.com/viewforum.php?f=7 (авторская)

То же назначение, тот же MortScript, весьма развитый функционал...

Автор: Medush 31.3.2009, 21:12

Цитата(MayBe @ 31.3.2009, 19:27) *
А чем предлагаемый функционал отличается от SASHIMI AutoInstaller RAW Edition кроме наличия русского языка?
(SASHIMI = Specialized Automation Script for HTC Installations, MortScript Initiated)
Ссылочки:
http://4pda.info/index.php?newsid=3440 (рус)
http://www.winmo-experts.com/viewforum.php?f=7 (авторская)

То же назначение, тот же MortScript, весьма развитый функционал...


Про SASHIMI ничего не знал. Познакомлюсь поближе.
Посмотрим что выйдет в итоге. Если сообща и активно будем обсуждать, то ... smile.gif

Автор: AGC 31.3.2009, 23:18

Medush, в принципе, у меня уже давно (еще с первых версий WM6) стоит MortScript. Ну и написан на нем простенький скрипт, который автоматически кабы на инсталляцию запускает после хард-ресета, в т.ч. с карты памяти. Тот же скрипт меняет ряд служебных параметров (удаляет пару ярлыков и создает новые, меняет в реестре кое-что, копирует одну библиотеку, предлагает запуск настройки сети и окончательный софт-ресет после всех манипуляций). От версии к версии я его модифицирую при необходимости. Поэтому лично пока не испытываю острой необходимости в специальной надстройке над MortScript, благо там можно сделать все smile.gif

Но... Твоя идея полезная! В качестве предложения могу посоветовать сместить акцент в потребителе. Если такая система сможет быть сконфигурирована конечным пользователем, например, на карте памяти и будет отрабатывать после хард ресета автоматически, то многие скажут спасибо. То есть разработчик прошивок просто вставляет поиск и автоматический запуск этой системы с карты памяти (стандартное место + стандартное название начального скрипта), а пользователь должен иметь возможность ее самостоятельной конфигурации. Что-нибудь типа папки AutoInstall на карте памяти с одноименным скриптом.

Основная проблема сведется к еще к удобному конфигуратору...

Автор: Medush 31.3.2009, 23:58

Цитата(AGC @ 1.4.2009, 0:18) *
[Но... Твоя идея полезная! В качестве предложения могу посоветовать сместить акцент в потребителе. Если такая система сможет быть сконфигурирована конечным пользователем, например, на карте памяти и будет отрабатывать после хард ресета автоматически, то многие скажут спасибо. То есть разработчик прошивок просто вставляет поиск и автоматический запуск этой системы с карты памяти (стандартное место + стандартное название начального скрипта), а пользователь должен иметь возможность ее самостоятельной конфигурации. Что-нибудь типа папки AutoInstall на карте памяти с одноименным скриптом.

Основная проблема сведется к еще к удобному конфигуратору...


Эта задача и стоит - максимально упростить использование.
В плане интеграции на запуск после ХР думаю можно написать простенький exe (читает из одноименного ini или txt путь к папке, проверяет/регистрирует MortScript, передает управление скрипту), и его подключить к большинству прошивок стандартным для большинства config'ом EXEC: Storage Card\AutoInstall.exe

Как думаешь, прокатит такой вариант?

Автор: AGC 1.4.2009, 0:35

Цитата(Medush @ 1.4.2009, 0:58) *
Эта задача и стоит - максимально упростить использование.
В плане интеграции на запуск после ХР думаю можно написать простенький exe (читает из одноименного ini или txt путь к папке, проверяет/регистрирует MortScript, передает управление скрипту), и его подключить к большинству прошивок стандартным для большинства config'ом EXEC: Storage Card\AutoInstall.exe

Как думаешь, прокатит такой вариант?

А почему нет? Нормально. Впрочем, этим бы я особо не заморачивался, если ты конечно не хочешь окучивать именно фирменные прошивки или вообще все. Я бы ориентировался на самосборные, куда разработчики могли бы интегрировать эту систему. Хотя сам запуск можно сделать именно как ты предлагаешь, тогда и встраивание в прошивку не обязательно. Просто запустил exe с карты памяти и все.

Но, на мой взгляд, тут очень важен визуальный конфигуратор для пользователя. Т.е. разработчик бы встраивал автозапуск твоей системы + визуальный конфигуратор для пользователя в прошивку (можно и Мастер настройки в виде скрипта, но по мне так интересней именно визуальный конфигуратор - это был бы дополнительный колоссальный плюс). Настройки конфигуратора, естественно, сохраняются на карте памяти. Хотя, если запуск будет идти ручками с карты памяти, то и автоконфигуратор может быть запущен оттуда, тогда и встраивание не особо то и нужно.

Автор: Medush 2.4.2009, 9:50

Друзья мои, для упрощения жизни пользователей хочу реализовать автоматическое открытие внутреннего стораджа (по желанию, есс-но).
Для этого начинаю собирать базу знаний по различным устройствам.
Требуются:
1. Ссылки на (или описание) алгоритмы открытия внутреннего стораджа
2. Название этого самого стораджа (у всех ли Storage или возможны варианты, особенно при использовании региональных языков?)
3. Ключ реестра, где хранится название стораджа. Как я понимаю, для всех девайсов они разные.


Еще вопрос: имя Storage Card всегда у всех прописано тут "HKLM\System\StorageManager\Profiles\SDMMC\" или также возможны подводные камни?

Автор: ol969 2.4.2009, 10:07

а еще можно кинуть папку Cabs на Storage после прошивки пойдет установка кабов вложенных в в эту папочку. осталось только собрать кабы или в кабы нужный софт

Автор: Medush 2.4.2009, 10:51

Цитата(ol969 @ 2.4.2009, 11:07) *
а еще можно кинуть папку Cabs на Storage после прошивки пойдет установка кабов вложенных в в эту папочку. осталось только собрать кабы или в кабы нужный софт


Все Cab'ы кладутся в папку \путь к скрипту\Programs. Оттуда же и устанавливаются.
Переименовать папку что ли, чтоб понятнее было? smile.gif

Автор: Medush 5.4.2009, 9:32

Выложил версию 0.3

Полноценный импорт *.reg и *.XML
Доработаны алгоритмы
Многое что поменяно.
Тестируйте

Автор: Xakep 10.2.2010, 14:24

Выловил быг в версий 0.3 . В скрипте CreateCabsList.mscr нужно строку...
if EditFlag=1
Run(ScriptsPath \ "\EXE\LiteNote\LiteNote.exe", iniSetupFile)
Заменить на...
if (EditFlag=1)
Run(ScriptsPath \ "\EXE\LiteNote\LiteNote.exe", iniSetupFile)
т.е. просто в условий проставить скобки.
Иначе при запуске CreateCabsList.mscr и наличий в папке Cabs файла SetupLocations.ini. Скраипт при попытке обнавить Ini файл вываливается с ошибкой. wink.gif

Русская версия Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)