Sign apk on linux

Пишем и собираем приложения для Android в linux консоли

В данной статье я покажу как можно собрать apk файл в Ubuntu используя лишь
утилиты командной строки.

Обычно для создания приложений для Adroid используется Android Studio. Но для сборки небольших программ можно обойтись командной строкой. Например, когда ресурсы компьютера ограничены и ваше приложение очень простое.

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

Введение

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

Раньше я использовал QPython, но он достаточно тяжел и неудобен в работе. Поэтому я перешел к разработке нативных программ. Даже при поверхностном знании Java
это не составляет больших трудностей.

Данное руководство в большой степени базируется на этом документе: Building an Android App
from the Command Line. Кому интересны подробности, обращайтесь к первоисточнику.

Похожая статья: Пишем, собираем и запускаем HelloWorld для Android в блокноте уже встречалась на этом ресурсе, но в ней было рассмотрена разработка в Windows.

Здесь же я рассмотрю, как можно собрать приложение в linux.

Железо

Тестирование проводилось на стареньком нетбуке с процессором Атом, 1Гб ОЗУ
и 8Гб SSD диска.

Операционная система

Я тестировал приложение на Ubuntu 17.04. Начиная с Ubunu 16.04 android-sdk можно установить через пакетный менеджер.

В принципе, тот же SDK можно
скачать с сайта.
Качать файл из раздела ‘Get just the command line tools’
По сути это не сильно меняет процесс, но через пакетный менеджер все гораздо проще.
Разница будет лишь в путях и установке дополнительных пакетов «android-platform».

Установка пакетов

Итак, приступим к установке.

Будет установлено большое количество пакетов, включая Java.

Далее, в зависимости от требуемой версии Android, необходимо установить нужную
версию пакетов. Для lolipop 5.1 необходимо ставить:

Так же необходимо установить дополнительный пакет.

Если вы планируете устанавливать apk-пакет через adb, то необходимо немного дополнительных настроек.

Настройка adb

С помощью lsusb найти подключенное устройство

И создать файл с правилом:

В файл добавить одну строку:

Здесь «1782» взято из вывода lsusb.

После подключения через adb, на устройстве необходимо подтвердить соединение.

Теперь все готово к работе.

Постановка задачи

Приложение, которое будем собирать немного сложнее, чем ‘Hello world’.

  • Требуется по нажатию кнопки взять строку из буфера обмена.
  • Вырезать подстроку
  • Записать подстроку обратно в буфер.
  • С помощь Toast вывести подстроку или сообщение об ошибке.

В общем-то все просто.

Читайте также:  Заблокирован диспетчер устройств windows 10 mmc exe администратором не открывается

Я подготовил пример который возьмем за основу.

Создание подписи

Сначала создадим ключ для подписи файла:

Это нам пригодится позже.

Манифест

Здесь указываем имя приложения в атрибуте «android:label». Так же приложение будет использоваться свою иконку, она указана в атрибуте «android:icon». Сама иконка лежит в каталоге «res/drawable-mdpi» файл «icon.png». В качестве иконки можно взять любой небольшой png файл.

Layout

Файл с расположением элементов находится в каталоге «/res/layout/».

В него можно добавлять виджеты, если вы захотите расширить функционал.

Исходный код приложения

Исходный код приложения находится здесь «java/ru/kx13/extractvidid»

Код весьма прост и примитивен, но этот шаблон можно использовать в других приложениях.

Скрипт для сборки

Я не стал использовать утилит сборки типа make или ant, т.к. весь код находится в одном файле и особых преимуществ это не даст. Поэтому это обычный shell скрипт:

Некоторые замечания по поводу путей.

  • По умолчанию, переменная BASE указывает на путь, в который пакетный менеджер сохраняет файлы. Если вы ставите SDK вручную, то путь надо будет изменить.
  • Если вы используете версию API отличную от 22, то вам надо подправить переменные BUILD_TOOLS и PLATFORM

Сборка и установка

Для сборки просто запустите

Если все настроено правильно никаких сообщений не будет выведено, а в каталоге «build» появится файл «Extractor.apk»

Теперь надо установить наше приложение

Если все прошло нормально, на устройстве появится новое приложение. Можно запускать и пользоваться.

В общем случае можно перекинуть файл apk на устройство любым удобным способом.

Заключение

Как видно из статьи начать разработку в консоли совсем несложно.

Консольные утилиты позволяют разрабатывать программы при весьма небольших ресурсах.

Источник

Установка и запуск Android-приложений на Linux

Как известно, многие Android-приложения можно нативно запускать на Chrome OS благодаря библиотеке Chrome App Runtime.

С помощью расширений chromeos-apk и ARChon запуск Android APK стал возможен и на других ОС.

В этой публикации я расскажу, как установить произвольное Android-приложение на Ubuntu 14.04.

Исходные инструменты:

  • Ubuntu 14.04 LTS;
  • Chrome 39.0 (подойдет и другая версия 37+).

Устанавливаем ARChon Runtime
1) Скачиваем и распаковываем ARChon в произвольную дирректорию;
2) Открываем Chrome и включаем Developer mode в chrome://extensions/;
3) Кликаем «Load unpacked extension» и устанавливаем распакованный ARChon.

Далее необходимо подготовить архив APK для установки.

Устанавливаем chromeos-apk
1) Для Ubuntu прежде всего нужно установить библиотеку lib32stdc++6:

2) chromeos-apk можно установить с помощью менеджера пакетов npm (поставляется вместе с node.js).
3) Сейчас можно установить непосредственно chromeos-apk:

Теперь все готово к распаковке APK.

Подготавливаем APK с помощью chromeos-apk
1) Для распаковки APK-архива выполняем:

2) Теперь у нас есть Chrome-APK расширение, и все что нужно — загрузить (chrome://extensions/) и запустить его.

UPD: полезные ссылки от sequence
ARChon Packager: создает архивы для archon из установленных в телефоне приложений.
twerk: расширение хром, сильно облегчает конвертацию apk.

Источник

Sign apk on linux

Uber Apk Signer

A tool that helps signing, zip aligning and verifying multiple Android application packages (APKs) with either debug or provided release certificates (or multiple). It supports v1, v2 and v3 Android signing scheme. Easy and convenient debug signing with embedded debug keystore. Automatically verifies signature and zipalign after every signing.

Читайте также:  Как обновить ноутбук до windows 10 pro

  • zipalign, (re)signing and verifying of multiple APKs in one step
  • verify signature (with hash check) and zipalign of multiple APKs in one step
  • built-in zipalign & debug keystore for convenient usage
  • supports v1, v2 and v3 android apk singing scheme
  • support for multiple signatures for one APK
  • crypto/signing code relied upon official implementation

This should run on any Windows, Mac or Linux machine where Java8+ is installed.

  • JDK 8
  • Currently on Linux 32bit: zipalign must be set in PATH

Command Line Interface

The password for the key. If this is not provided, caller will get a user prompt to enter it. It is possible to pass one or multiple passwords for multiple keystore configs. The syntax for multiple params is ‘ =

‘. Must match the parameters of —ks. —ksPass

The password for the keystore. If this is not provided, caller will get a user prompt to enter it. It is possible to pass one or multiple passwords for multiple keystore configs. The syntax for multiple params is ‘ =

‘. Must match the parameters of —ks. -l,—lineage

The lineage file for apk signer schema v3 if more then 1 signature is used. See here https://bit.ly/2mh6iAC for more info. -o,—out

Where the aligned/signed apks will be copied to. Must be a folder. Will create, if it does not exist. —overwrite Will overwrite/delete the apks in-place —skipZipAlign Skips zipAlign process. Also affects verify. -v,—version Prints current version. —verbose Prints more output, especially useful for sign verify. —verifySha256 Provide one or multiple sha256 in string hex representation (ignoring case) to let the tool check it against hashes of the APK’s certificate and use it in the verify process. All given hashes must be present in the signature to verify e.g. if 2 hashes are given the apk must have 2 signatures with exact these hashes (providing only one hash, even if it matches one cert, will fail). -y,—onlyVerify If this is passed, the signature and alignment is only verified. —zipAlignPath

Pass your own zipalign executable. If this is omitted the built-in version is used (available for win, mac and linux) «>

Provide your own out directory for signed apks

Источник

[TOOL][APP][SIGN][APK/ZIP] Package Signer (Windows/Linux/Mac/Android)

Humble Potato II

Member

This tool automatically sign an APK or an OTA update package with the Android test certificate. Comes with an Android application and a Java program for PC.

Android

  • No root permission needed.
  • Currently supports Android testkeys only.
  • Simple file browser for choosing packages.
  • Automatically generates the output name based on the package name (if no output specified).
Читайте также:  Metasploit framework windows запуск

PC

  • Works as a single executable JAR (v3.0/3.1)
  • Easy dragging & dropping of packages (v2.1/2.2)
  • Multiple package signing function (v2.2)
  • Able to cancel the signing process (v2.0-2.2)

Both PC and Android version uses the same SignApk by The Android Open Source Project, modified differently according to the platform. But both versions does the same exact signature writing process and generates the same certificates.

  • JDK at least version 7 (PC version)
  • Android 4.1 and up (Android version)
  1. Specify the Package you want to sign.
  2. Choose an Output folder where to save it.
  3. Hit the Sign button to start signing it.

Download the latest versions of Package Signer.

Previous versions of Package Signer (see it here).

All the program’s source code is available here.

  • Sun Jarsign Support, source code form the ZipSigner application by sir @kellinwood
  • SignApk by The Android Open Source Project used by Appium. Modified to be able to work on this program.
  • Commons IO library by Apache used to automatically generate the output package name.
  • Android File Browser library by Roger Keays used to support browsing of packages.
  • FileDrop library by iHarder used to support dragging and dropping of packages (on versions 2.1 & 2.2).

XDA:DevDB Information
[TOOL][APP][SIGN][APK/ZIP] Package Signer (Windows/Linux/Mac/Android) , ROM for the Android General

Version Information
Status: Testing

Created 2017-01-24
Last Updated 2017-01-24

Источник

How to sign an apk through command line

Be informed that we have created an apk file through command line with the help of Android SDK. Now since uploading it to google play store needs the apk to be signed. How shall we do this.

3 Answers 3

Step 1

First you need to generate a private signing key

This command will prompt you for a password for your keystore and key (also for some additional fields). Please remember to keep your keystore file private at anytime.

Step 2

Next you need to setup gradle

    Place my-release-key.keystore which you generated in Step 1 under android/app

/.gradle/gradle.properties under android/app and add the following

Step 3

Finally you need to update your android/app/build.gradle .

Now you can simply generate a signed release via the command line by running the following command in your android directory

The generated apk can then be found under your build/outputs/apk/release directory.

First you need a keystore to begin the process. You will be signing your apk with this keystore and you need to sign with same keystore for future updates. Know more about keystore here: https://developer.android.com/studio/publish/app-signing#generate-key

Once you generate the keystore, you should jarsigner utility (which is available in JDK folder)

  1. Next step is to use zipalign tool(available in android SDK folder) to verify the apk.
  1. Last step is to verify with apksigner tool (available in android SDK folder)

PS: Replace paths, files and passwords with actual values

Источник

Оцените статью