Клонируем UWP-приложения – проще чем кажется
Ни для кого не секрет, что на смартфонах под управлением операционной системы Android можно клонировать приложения. Иногда этот функционал даже встроен в систему. Один из примеров тому – (не) всеми любимая MIUI, которая, начиная с двенадцатой версии, уже умела создавать дубликаты приложений.
Однако если речь идёт о Windows 10/11, то я не встречал решений для клонирования UWP-приложений. Давайте попробуем это исправить!
Подготовка
Итак, что же нам понадобится:
- Прямые руки, немного терпения
- Устройство под управлением Windows 10/11
- Пакет SDK для Windows (доступен для загрузки здесь)
Если вы уверены, что всё, перечисленное выше, у вас имеется – можно двигаться дальше.
Приступим к действиям
Первым делом нам необходимо выбрать приложение, которые мы будем клонировать. В качестве подопытного я выбрал Unigram – клиент для мессенджера Telegram. Дальнейшие действия буду показывать на этом примере.
Открываем PowerShell от имени администратора. Вводим следующую команду:
Эта команда покажет нам список всех установленных приложений. Среди всего списка находим то, которое мы собираемся клонировать. Выглядит это примерно следующим образом:
Из всей этой кучи нам пригодится параметр Name. Запоминаем его.
Теперь экспортируем приложение куда-нибудь типа так:
Имя приложения – это то самый параметр Name. Также необходимо указать путь, куда именно будет происходить экспорт.
В итоге у нас должно получиться что-то подобное:
Среди этой кучи файлов должен быть AppxManifest.xml. Нам необходимо немного его отредактировать. Открываем его и находим строчку Identity. Меняем значение Name и Publisher на свои. Вот как это получилось у меня:
Теперь приступим к сборке appx-пакета. Открываем Developer Command Prompt for Visual Studio. Вводим следующее:
Убеждаемся, что пакет успешно собрался:
И что, это всё? О нет, если вы попробуете установить его – вы столкнётесь с проблемой. Для UWP приложения по-хорошему нужен сертификат. Ну ладно - слепим его сами! В консоли PowerShell вводим следующее:
Теперь необходимо экспортировать полученный сертификат в формате .pfx. Для этого открываем certmgr.msc. Идём в Личное > Сертификаты и находим наш сертификат. Нажимаем на него правой кнопкой мыши, затем Все задачи > Экспорт.
Выбираем "Экспортировать закрытый ключ". В процессе нужно будет ввести пароль. Вводим его и запоминаем. Далее по подсказкам. Сохраняем сертификат туда, где он не потеряется.
Сертификат на месте? Отлично! Подпишем пакет нашим сертификатом в консоли Developer Command Prompt for Visual Studio:
Далее – немного хитрости. ПКМ по нашему файлу appx > Цифровые подписи > В списке подписей выбираем нашу подпись > Сведения > Просмотр сертификата > Установить сертификат > Локальный компьютер > Поместить в следующее хранилище > Обзор > Устанавливаем его в Доверенные лица.
Открываем APPX. Нажимаем установить...
Ошибка об отсутствии сертификата ушла и приложение успешно установилось. Мы счастливы. Открываем меню Пуск и в списке приложений нас встречают два приложения:
И да, наш клон успешно открывается и функционирует!
Что ещё?
Об этом я забыл упомянуть. Наверное по хорошему в манифесте можно поменять его имя. И вообще в ресурсах поменять иконку чтобы различать оригинал и копию. Я надеюсь, это не будет проблемой для вас.