Skip to content

Instantly share code, notes, and snippets.

@scento
Created August 9, 2015 11:31
Show Gist options
  • Save scento/4a2abe0d5f989661a8e2 to your computer and use it in GitHub Desktop.
Save scento/4a2abe0d5f989661a8e2 to your computer and use it in GitHub Desktop.
microg build script
#!/bin/bash
# @author Wenzel Pünter <[email protected]>
mkdir microg
cd microg
mkdir outputs
mkdir keystores
ANDROID_SDK_PATH="/opt/android-sdk-update-manager"
KEYSTORES_PATH="keystores"
# Generate keystores
echo "We need to create a keystore for unifiednlp:"
keytool -genkey -v -keystore $KEYSTORES_PATH/unifiednlp.jks -alias unifiednlp -keyalg RSA -keysize 4096 -validity 10000
echo "We need to create a keystore for fakestore:"
keytool -genkey -v -keystore $KEYSTORES_PATH/fakestore.jks -alias fakestore -keyalg RSA -keysize 4096 -validity 10000
echo "We need to create a keystore for play services:"
keytool -genkey -v -keystore $KEYSTORES_PATH/playservices.jks -alias unifiednlp -keyalg RSA -keysize 4096 -validity 10000
# GMSCore
git clone https://github.com/microg/android_packages_apps_GmsCore.git
cd android_packages_apps_GmsCore
git submodule update --init --recursive
echo "sdk.dir=$ANDROID_SDK_PATH" > local.properties
echo "sdk-location=$ANDROID_SDK_PATH" >> local.properties
./gradlew build
cp play-services-core/build/outputs/apk/play-services-core-release-unsigned.apk ../outputs/play-services-core-release.apk
# Fake Store
cd ..
git clone https://github.com/microg/android_packages_apps_FakeStore.git
cd android_packages_apps_FakeStore
echo "sdk.dir=$ANDROID_SDK_PATH" > local.properties
echo "sdk-location=$ANDROID_SDK_PATH" >> local.properties
./gradlew build
cp build/outputs/apk/android_packages_apps_FakeStore-release-unsigned.apk ../outputs/android_packages_apps_FakeStore-release.apk
# UnifiedNLP
cd ..
git clone https://github.com/microg/android_packages_apps_UnifiedNlp.git
cd android_packages_apps_UnifiedNlp
git submodule update --init --recursive
cp ../android_packages_apps_GmsCore/gradlew ./gradlew
cp -r ../android_packages_apps_GmsCore/gradle ./gradle
echo "sdk.dir=$ANDROID_SDK_PATH" > local.properties
echo "sdk-location=$ANDROID_SDK_PATH" >> local.properties
./gradlew build
cp unifiednlp-app/build/outputs/apk/unifiednlp-app-UnifiedNlp-release-unsigned.apk ../outputs/unifiednlp-app-UnifiedNlp-release.apk
# Sign APKs
cd ../outputs
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore $KEYSTORES_PATH/unifiednlp.jks unifiednlp-app-UnifiedNlp-release.apk unifiednlp
$ANDROID_SDK_PATH/build-tools/22.0.1/zipalign -v 4 unifiednlp-app-UnifiedNlp-release.apk org.microg.nlp.app.apk
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore $KEYSTORES_PATH/fakestore.jks android_packages_apps_FakeStore-release.apk fakestore
$ANDROID_SDK_PATH/build-tools/22.0.1/zipalign -v 4 android_packages_apps_FakeStore-release.apk com.android.vending.apk
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore $KEYSTORES_PATH/playservices.jks play-services-core-release.apk playservices
$ANDROID_SDK_PATH/build-tools/22.0.1/zipalign -v 4 play-services-core-release.apk com.google.android.gms.apk
# Installing APKs
adb root
sleep 5
adb remount
sleep 5
adb push org.microg.nlp.app.apk /system/priv-app/NetworkLocation.apk
adb install com.android.vending.apk
adb install com.google.android.gms.apk
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment