The SCION app enables you to run a SCION AS attached to the SCIONLab network on an Android smartphone.
Clone this repository:
git clone --recurse-submodules https://github.com/netsys-lab/scion-android.git
cd scion-android
Then import this project into Android Studio or run the following in a shell to build the app:
# build an Android App Bundle (AAB) suitable for publishing in the Play Console
# (also possible from Android Studio with Build > Build Bundle(s) / APK(s) > Build Bundle(s))
./gradlew bundle
cd app/build/outputs/bundle/release
# optionally, inspect the created AAB with bundletool (see https://developer.android.com/studio/command-line/bundletool)
wget https://github.com/google/bundletool/releases/download/0.13.0/bundletool-all-0.13.0.jar
# build an APK set for all device configurations
java -jar bundletool-all-0.13.0.jar build-apks --bundle=app-release.aab --output=all.apks
# build an APK set for the connected device and install
java -jar bundletool-all-0.13.0.jar build-apks --bundle=app-release.aab --output=connected.apks --connected-device
java -jar bundletool-all-0.13.0.jar install-apks --apks=connected.apks
# build universal APK, which can be deployed on any device (see https://stackoverflow.com/q/53040047)
java -jar bundletool-all-0.13.0.jar build-apks --bundle=app-release.aab --output=universal.apks --mode=universal
unzip universal.apks
To sign the AAB for publishing in the Play Console, follow the instructions in app/build.gradle.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
This software uses the following libraries:
- SCION, used under the conditions of the Apache License, Version 2.0
- OpenVPN for Android, used under the conditions of the GNU General Public License, Version 2.0
- AndroidX, used under the conditions of the Apache License, Version 2.0
- Material Components for Android, used under the conditions of the Apache License, Version 2.0
- Timber, used under the conditions of the Apache License, Version 2.0
- jarchivelib, used under the conditions of the Apache License, Version 2.0
For more information on this project, contact the NetSys group.
© 2019 Vera Clemens, Tom Kranz
© 2020 Tom Heimbrodt, Elias Kuiter
© 2022 Tony John

