This is an old revision of the document!


Lab 8 - Cryptography 2

Objectives

  • Protect the app's APK using signing
  • Use Android's Keystore to generate and store cryptographic keys
  • Use them to sign an app

Application signing

If you want to install an application on Android, the apk must be digitally signed with a certificate. For example, when you test your application on the emulator, Android Studio signs the apk with a debug certificate. The first time when you run or debug a project in Android Studio, a debug keystore and certificate is automatically created using the Android SDK tools in $HOME/.android/debug.keystore. Also the keystore is initialized and the key password are set.

As a security measure the debug certificate needs to be used only for testing and for debug builds. This certificate is not secure for using on app stores.

For later runs/debugs Android Studio automatically stores the debug signing configuration so that we do not need to enter it every time we launch the app. The signing configuration contains the keystore location $HOME/.android/debug.keystore, keystore password, key name and key password. This debug signing configuration used at run/debug is not available for editing. You can create a signing config for your release builds.

Steps for generating and uploading key and keystore:

  1. Go to Build > Build > Generate Signed Bundle/APK
  2. Select APK
  3. Under Key store path choose Create new
  4. Complete the fields and then continue with the signing steps below

Sign app with key:

  1. Build → Generate Signed Bundle/APK
  2. In the Generate Signed Bundle/APK choose APK
  3. The app module should be selected if not choose it or choose a module from the drop down
  4. Enter the path to your keystore, the alias for the key and the passwords for keystore and key
  5. Enter destination folder for the signed app, enter the release build type, choose the flavor
  6. Choose the APK Signature version your app to support
  7. Finish

For more details on application signing and distribution check App Signing

Tasks

In this lab we create an app that …

Task 1 - Sign the application (2p)

In this task will see how Android applications are signed:

  • Create a new application (with an empty activity).
  • Using the steps presented in the lab create a key and keystore and generate the signed APK of the application.
  • Use adb tool to install the APK.

Task 2 - Signing configuration (2p)

In this task will create a signing configuration for different build types.

  • Create a release signing configuration with the data from Task 1. Auto sign
  • Build a release version when pressing Run. Check Build Variants view from Android Studio.
  • Create a release signing configuration using a new key.
  • Sign the application wth the new release config and use adb to install the signed apk. You should install the new signed apk on top of the one from Task 1. What happens with the application?
smd/laboratoare/08_v_temp.1555838990.txt.gz · Last modified: 2019/04/21 12:29 by vasile.cosovanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0