Как объединить два апк файла в один

Обновлено: 06.07.2024

Раньше я спрашивал о совместном использовании или резервном копировании apk файлов приложения/пакета, здесь.

Это кажется почти невыполнимой задачей, которую я мог только выяснить, как установить разделенные файлы APK, и даже тогда это только через adb:

Проблема

Мне сказали, что на самом деле должно быть возможно объединить несколько разбитых APK файлов в один, который я мог бы установить (здесь), но мне не сказали, как это сделать.

Это может быть полезно для сохранения его на более поздний срок (резервного копирования), а также потому, что в настоящее время нет способа установить файлы split-apk внутри устройства.

На самом деле это настолько серьезная проблема, что я не знаю ни одного приложения для резервного копирования, которое может обрабатывать разделенные файлы APK (комплект приложений), в том числе приложение Titanium.

Что я нашел

Я взял пример приложения, которое использует наборы приложений, под названием "AirBnb".

Что касается файлов, которые он имеет, то Play Store решил загрузить:

enter image description here

Поэтому я попытался ввести каждый. "База" является основной, поэтому я пропустил ее, чтобы посмотреть на остальные. Мне кажется, что у всех есть эти файлы внутри:

  • "META-INF"
  • "Resources.arsc"
  • "AndroidManifest.xml"в случае с "xxxhdpi" я также получаю папку "res".

Дело в том, что, поскольку все они существуют в нескольких местах, я не понимаю, как их объединить.

Вопросы

Как объединить все эти файлы в один APK файл?

Можно ли установить сплит APK файлы без рута и без ПК? В прошлом это было возможно для приложений резервного копирования, таких как Titanium, но только для обычных файлов APK, а не для пакета приложений (split apk).

ОБНОВЛЕНИЕ: я назначил награду. Пожалуйста, если вы знаете решение, покажите его. Покажите то, что вы тестировали на работу. Либо слияние разделенных файлов APK, либо установка их без прав root и прав на устройстве.

ОБНОВЛЕНИЕ: К сожалению, все решения здесь не работали, с или без рута, и что, хотя я нашел приложение, которое преуспело в этом (с и без рута), под названием "SAI (Split APKs Installer)" (я думаю, что это репозиторий здесь, найден после того, как я положил награду).

Я ставлю новую награду. Пожалуйста, кто бы ни опубликовал новый ответ, покажите, что он работает с рутом и без него. Покажите на Github, если нужно (и здесь только важные вещи). Я знаю, что это приложение в любом случае с открытым исходным кодом, но для меня важно, как это сделать здесь и поделиться с другими, поскольку в настоящее время показанное здесь не работает и требует root, даже если оно не очень нужно.

На этот раз я не буду предоставлять награду, пока не увижу что-то, что действительно работает (ранее у меня было мало времени и я дал ответ, который, как я думал, должен работать).

ОТВЕТЫ

Ответ 1

РЕДАКТИРОВАТЬ: Поскольку решение работает, но не опубликовано здесь, я решил написать его, прежде чем пометить как правильное решение. Вот код:

манифест

APKInstallService

Основная деятельность

Ответ 2

Из пакета приложений для Android вы можете сгенерировать "универсальный APK" с помощью команды bundletool build-apks с --mode=universal флагом --mode=universal . Это создаст один "толстый" APK, который совместим со всеми устройствами (которые поддерживает ваше приложение).

Я знаю, что это не совсем ответ на ваш вопрос, но попытка объединить APK не только сложная задача, но во многих случаях приведет к чему-то неправильному.

Ответ 3

Пожалуйста, проверьте это. когда мы отправим

который в свою очередь вызывает Pm.java или новый способ выполнения кода PackageManagerService, оба схожи

Я пытался интегрировать этот код в мое приложение. Проблема, с которой я столкнулся, не удалось завершить установку apk, это связано с необходимостью приложения.

Но это только для системных приложений. Когда я выполнил эти шаги из adb shell, установка apk прошла успешно, а когда я создала свое приложение, системная установка priv-app apk прошла успешно.

код для вызова нового API-интерфейса PackageManager, в основном скопированного из Pm.java. Шаги по установке сплит файлов

Создайте сеанс с аргументом -S, верните идентификатор сеанса.

(install-create, -S, 52488426) 52488426 - общий размер apks.

Напишите разделенные apks в этом сеансе с размером, именем и путем

(установить-записать, -S, 44334187, 824704264, 1_base.apk, -)

(установить-записать, -S, 1262034, 824704264, 2_split_config.en.apk, -)

(установить-записать, -S, 266117, 824704264, 3_split_config.hdpi.apk, -)

(установить-записать, -S, 6626088, 824704264, 4_split_config.x86.apk, -)

зафиксировать сеанс с идентификатором сеанса

Я поместил airbnb apk в мою SDCard.

и вызывая функции для установки apk.

Это список команд, которые фактически принимаются в Pm.java, когда мы выполняем adb install-multiple

Так что для приложений, которые не являются системными priv-app, я не знаю, как они могут установить сплит apks. Play store как системное priv-приложение может без проблем использовать эти apis и устанавливать сплит apk.

Ответ 4

Bundletool - это обычный инструмент CLI для выполнения этих задач; однако для запуска обычного Java- jar потребуется обычная Java JVM . Тем не менее, добавление его в качестве зависимости в проект приложения Android может сработать - с другой стороны, все параметры командной строки необходимо будет указывать по-разному, что потребует частичной перезаписи. Не существует "простого" решения проблемы.

Ответ 5

Если у вас есть root, вы можете использовать этот код.

Перед выполнением этого кода, пожалуйста, получите разрешение на чтение/запись SD-карты (через разрешения времени выполнения или разрешение, предоставленное приложением настроек). airbnb apk был успешно установлен после запуска этого кода.

Вызывая эту функцию с аргументами "/split-apks/", я поместил разделенные apk airbnb в каталог в /sdcard/split-apks/.

РЕДАКТИРОВАТЬ: тот же код, но в Kotlin, так как он короче:

Ответ 6

Как объединить все эти файлы в один APK файл?

После установки (см. вопрос 2) используйте, например, TotalCommander, чтобы скопировать APK из "установленные приложения"

Можно ли установить сплит APK файлы без рута и без ПК?

Из пакета приложений для Android вы можете сгенерировать «универсальный APK», используя команду bundletool build-apks с флагом --mode=universal . Это создаст один «толстый» APK, который совместим со всеми устройствами (которые поддерживает ваше приложение).

Я знаю, что это не совсем ответ на ваш вопрос, но попытка объединить APK - это не только сложная задача, но во многих случаях это приведет к ошибке.

РЕДАКТИРОВАТЬ: Поскольку решение работает, но не опубликовано здесь, я решил написать его, прежде чем пометить как правильное решение. Вот код:

манифест

APKInstallService

MainActivity [ 1110]

Пожалуйста, проверьте это. когда мы отправляем

, который, в свою очередь, вызывает Pm.java или новый способ выполнения кода PackageManagerService, оба схожи

Я пытался интегрировать этот код в свое приложение. Проблема, с которой я столкнулся, не удалось завершить установку apk, это связано с необходимостью приложения.

Но это только для системных приложений. Когда я выполнил эти шаги из adb shell, установка apk прошла успешно, а когда я создала свое приложение, системная установка priv-app apk прошла успешно.

код для вызова нового API-интерфейса PackageManager, в основном скопированный из Pm.java. Шаги по установке split apks

Создать сеанс с аргументом -S, вернуть идентификатор сеанса. [ 1117]

(install-create, -S, 52488426) 52488426 - общий размер apks.

Записать разделенные apks в этом сеансе с размером, именем и путем

(install-write, -S, 44334187, 824704264, 1_base.apk, -)

(установить -write, -S, 1262034, 824704264, 2_split_config.en.apk, -)

(установить-написать, -S, 266117, 824704264, 3_split_config.hdpi.apk, -)

(install-write, -S, 6626088, 824704264, 4_split_config.x86.apk, -)

зафиксировать сеанс с идентификатором сеанса

Я поместил apk airbnb в мою SDCard.

и вызов функций для установки apk.

Это список команд, которые фактически принимаются в Pm.java, когда мы выполняем adb install-multiple

Так что для приложений, которые не являются системным priv-app, Я не знаю, как они могут установить сплит apks. Play store, являющийся системным priv-приложением, может использовать эти apis и устанавливать сплит apk без проблем.

MergeFiles: онлайн объединение файлов разного формата в один документ

В этом материале вы узнаете о том, как объединить несколько документов разного формата в один файл с помощью веб-сервиса MergeFil.es. Сервис способен склеить файлы PDF, Word, PowerPoint, Excel и картинки. Собранный воедино документ проще хранить, искать, распечатывать и отправлять. Возможности MergeFil.es прежде всего пригодятся офисным трудягам и обучающимся в организации документооборота.

Представим ситуацию, вы влюбились в весну, и незаметно для себя пропустили несколько лекций. Готовясь к экзамену, попросили сокурсников скинуть недостающий материал. И вот, дух единства откликнулся и прислал вам одну лекцию в формате doc, вторую в pdf, а третью в jpg. Хорошо, но неудобно.

В этом материале вы узнаете о том, как объединить несколько документов разного формата в один файл с помощью веб-сервиса MergeFil.es. Собранный воедино документ проще хранить, искать, распечатывать и отправлять. Возможности сервиса пригодятся и офисным трудягам в организации документооборота.

Работа с сервисом

MergeFil.es не лишен огрехов, но, в целом, представляет собой полезный рабочий инструмент. Нам не удалось найти информации по ограничению количества файлов и их объема. Видимо, все вписывается в рамки обычных житейских потребностей. А вот список поддерживаемых форматов состоит из PDF, MS Word, MS PowerPoint, MS Excel, Images, Html, txt.

Минималистичный дизайн сервиса сразу предлагает загрузить файлы для объединения. Но выбрать их можно только из одной единственной папки. Не совсем удобно, но вариантов пока нет.

Подождав загрузки файлов на сервер, вы увидите список объединяемых файлов и их размер в табличном виде. На этом этапе у вас есть возможность задать порядок следования файлов в общем документе. Да, еще имеется переключатель компрессии выходного файла, но добиться от него реальной работы нам не удалось.

Читать еще: Как восстановить страницу в твиттере после удаления?

Плюсы и недостатки

Самой востребованной функцией MergeFil.es представляется создание PDF-файла. Нами сервису были скормлены наиболее типичные в повседневном применении файлы: текстовые документы Word и Блокнот, картинка и тот же PDF. Результат не смог максимально порадовать. Создание общего файла прошло быстро, но изображение получилось обрезанным, а кириллица из Блокнота отобразилась абракадаброй.

При повторном эксперименте мы изменили ориентацию изображения с альбомной на книжную, а также назначили DOC в качестве выходного формата. Изображение не подверглось обрезанию. Файл PDF был распознан как текст, в результате чего стал редактируем средствами Word.

Выводы

Конечно, до сотворения чудес MergeFil.es еще далеко. Но для быстрой склейки связанных одной тематикой документов, сервис вполне годен. Вам не требуется установки специализированного софта, все выполняется онлайн. Загруженные данные временно располагаются в облачном хранилище сервиса, постепенно удаляются и не передаются в чужие руки.

А каковы ваши впечатления от работы с сервисом? Поделитесь мнением в комментариях.

Склеиваем два файла в один



Зачем это нужно?

Например если вам нужно спрятать какой-либо файл от

посторонних глаз, а скрывать файлы слишком по-детски.

Что потребуется:

И так, начнем.

Создаем текстовый документ ( у нас он будет носить имя 1.txt). Надеюсь с этим проблем не возникнет.

В нем прописываем команду:

Copy /b 1.jpg + 2.zip 3.jpg

Естественно, названия ваших файлов не обязательно должны быть именно такими.

Шаг второй. Создание .bat файла.

Далее, уже готовый текстовый файл мы сохраняем с расширением .bat

Важно!

Делаем все как на скриншоте.

(Все важные манипуляции подчеркнуты красными линиями)


После этого у вас создастся 1.bat файл. После его запуска (двойной клик) начнется процесс объединения файлов. Это скрытый процесс. О его завершении вы узнаете после того, как увидите файл 3.jpg например на вашем рабочем столе (в зависимости от того, где лежат файлы и .bat файл.

Вывод

ПКМ-открыть с помощью.

Вот и всё. С виду обычная картинка, а внутри сюрприз. Что внутри знаете только вы и ваша извращенная фантазия. Так же рекомендую поставить на архив пароль, дабы полностью обезопасить свои данные.

Как объединить PDF в один файл: 2 простых способа

Автор: Амиль | Дата публикации: 3-04-2018 | В разделе: Windows инструкции

Формат PDF универсален. Он поддерживает внешние ссылки, что делает его незаменимым для всемирной паутины. Вся компьютерная техника и современное печатное оборудование распознают его. Поэтому ПДФ так популярен. Но вот работать с ним не так-то легко. Основная проблема пользователей склейка 2 и более документов. Рассмотрим способы, как можно объединить несколько PDF файлов в один документ.

Использование программных продуктов

Его инсталляция на ПК или ноутбук стандартная. Процесс может занять от 3 до 7 минут. После установки Adobe Acrobat компьютерную технику лучше перезагрузить. Объединяют файлы с помощью платформы следующим образом:

  1. Открыть программу и в главном меню выбрать «Инструменты»;
  2. В блоке «Создание и редактирование» выбрать «Объединить …»;
    нажать на стрелочку «Добавить» и из списка выбрать «Открыть»;

Существуют и другие программные продукты для склеивания 2 и более документов — PDF Split and Merge, PDF Combine, PDFBinder, PDFCreator, Foxit Phantom, BullZip PDF Printer, Altarsoft PDF Reader, PDF-ShellTools и др. Все они доступны в сети интернет. Многие являются условно бесплатными, имеют русскоязычный интерфейс. Для новичков и тех пользователей, которые выполняют несложные операции с электронными документами, отлично подойдут:

Foxit Phantom
Установка программного продукта стандартная. Процесс займет до 10 минут. Интерфейс очень схож с Microsoft приложениями. После инсталляции и вызова программы действуют так:

  • В горизонтальном меню выбрать «Преобразовать»;
  • На панели инструментов ниже найти «Из файлов»;
  • Открыть стрелку и выбрать «Из нескольких …»;
  • В новом окне поставить галочку «Объединить несколько …»;

PDFBinder
Чтобы совместить документы, действуют так:

  • Открыть PDFBinder;
  • Нажать «Add file»;
  • После добавление объектов в центральное окно нажать «Bind!»;
  • В новом окне задать имя документу и указать путь сохранения.

Этот программный продукт бесплатно распространяется в сети. Небольшая и очень быстрая программка с англоязычным интерфейсом. Предназначена она исключительно для склеивания файлов в формате ПДФ. Устанавливается стандартно. В меню только две функциональные клавиши.

Читайте также: