diff --git a/server/.gitignore b/server/.gitignore index 0df7064d..bf5287d6 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -6,3 +6,4 @@ /build /captures .externalNativeBuild +/keystore.properties diff --git a/server/HOWTO_keystore.txt b/server/HOWTO_keystore.txt new file mode 100644 index 00000000..fb20eac7 --- /dev/null +++ b/server/HOWTO_keystore.txt @@ -0,0 +1,12 @@ +For an APK to be installable, it must be signed: + +For that purpose, create a keystore by executing this command: + + keytool -genkey -v -keystore ~/.android/scrcpy.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias scrcpy -dname cn=scrcpy + +(Adapt ~/.android/scrcpy.keystore if you want to generate it to another location.) + +Then create server/keystore.properties and edit its properties: + + cp keystore.properties.sample keystore.properties + vim keystore.properties # fill the properties diff --git a/server/build.gradle b/server/build.gradle index 9725089e..6a0b69d8 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -10,10 +10,26 @@ android { versionName "1.24" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } + signingConfigs { + release { + // to be defined in server/keystore.properties (see server/HOWTO_keystore.txt) + def keystorePropsFile = rootProject.file("server/keystore.properties") + if (keystorePropsFile.exists()) { + def props = new Properties() + props.load(new FileInputStream(keystorePropsFile)) + + storeFile rootProject.file(props['storeFile']) + storePassword props['storePassword'] + keyAlias props['keyAlias'] + keyPassword props['keyPassword'] + } + } + } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + signingConfig signingConfigs.release } } } diff --git a/server/keystore.properties.sample b/server/keystore.properties.sample new file mode 100644 index 00000000..a072c594 --- /dev/null +++ b/server/keystore.properties.sample @@ -0,0 +1,4 @@ +storeFile=/path/to/your/keystore +storePassword=PASSWORD +keyAlias=scrcpy +keyPassword=PASSWORD diff --git a/server/scripts/build-wrapper.sh b/server/scripts/build-wrapper.sh index 7e16dc94..7ff4f3c8 100755 --- a/server/scripts/build-wrapper.sh +++ b/server/scripts/build-wrapper.sh @@ -25,5 +25,5 @@ then cp "$PROJECT_ROOT/build/outputs/apk/debug/server-debug.apk" "$OUTPUT" else "$GRADLE" -p "$PROJECT_ROOT" assembleRelease - cp "$PROJECT_ROOT/build/outputs/apk/release/server-release-unsigned.apk" "$OUTPUT" + cp "$PROJECT_ROOT/build/outputs/apk/release/server-release.apk" "$OUTPUT" fi