diff --git a/Android64/Debug/AndroidManifest.xml b/Android64/Debug/AndroidManifest.xml new file mode 100644 index 0000000..88d42f5 --- /dev/null +++ b/Android64/Debug/AndroidManifest.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android64/Debug/PMA.Crypto.o b/Android64/Debug/PMA.Crypto.o new file mode 100644 index 0000000..ffcd179 Binary files /dev/null and b/Android64/Debug/PMA.Crypto.o differ diff --git a/Android64/Debug/PMA.TestVector.o b/Android64/Debug/PMA.TestVector.o new file mode 100644 index 0000000..54aa240 Binary files /dev/null and b/Android64/Debug/PMA.TestVector.o differ diff --git a/Android64/Debug/colors-night-v21.xml b/Android64/Debug/colors-night-v21.xml new file mode 100644 index 0000000..5df7d1d --- /dev/null +++ b/Android64/Debug/colors-night-v21.xml @@ -0,0 +1,4 @@ + + + #000 + diff --git a/Android64/Debug/colors.xml b/Android64/Debug/colors.xml new file mode 100644 index 0000000..33b4067 --- /dev/null +++ b/Android64/Debug/colors.xml @@ -0,0 +1,4 @@ + + + #FFF + diff --git a/Android64/Debug/ic_launcher-v33.xml b/Android64/Debug/ic_launcher-v33.xml new file mode 100644 index 0000000..8fde456 --- /dev/null +++ b/Android64/Debug/ic_launcher-v33.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/Android64/Debug/ic_launcher.xml b/Android64/Debug/ic_launcher.xml new file mode 100644 index 0000000..6b78462 --- /dev/null +++ b/Android64/Debug/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/Android64/Debug/mainApk.o b/Android64/Debug/mainApk.o new file mode 100644 index 0000000..65693c3 Binary files /dev/null and b/Android64/Debug/mainApk.o differ diff --git a/Android64/Debug/pmserverApk.classes/classes.dex b/Android64/Debug/pmserverApk.classes/classes.dex new file mode 100644 index 0000000..fd3c4e7 Binary files /dev/null and b/Android64/Debug/pmserverApk.classes/classes.dex differ diff --git a/Android64/Debug/pmserverApk.classes/classes2.dex b/Android64/Debug/pmserverApk.classes/classes2.dex new file mode 100644 index 0000000..dc64565 Binary files /dev/null and b/Android64/Debug/pmserverApk.classes/classes2.dex differ diff --git a/Android64/Debug/pmserverApk.o b/Android64/Debug/pmserverApk.o new file mode 100644 index 0000000..97d15dd Binary files /dev/null and b/Android64/Debug/pmserverApk.o differ diff --git a/Android64/Debug/pmserverApk/AndroidManifest.xml b/Android64/Debug/pmserverApk/AndroidManifest.xml new file mode 100644 index 0000000..88d42f5 --- /dev/null +++ b/Android64/Debug/pmserverApk/AndroidManifest.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android64/Debug/pmserverApk/bin/pmserverApk.apk b/Android64/Debug/pmserverApk/bin/pmserverApk.apk new file mode 100644 index 0000000..c26286e Binary files /dev/null and b/Android64/Debug/pmserverApk/bin/pmserverApk.apk differ diff --git a/Android64/Debug/pmserverApk/bin/pmserverApk.apk.idsig b/Android64/Debug/pmserverApk/bin/pmserverApk.apk.idsig new file mode 100644 index 0000000..ae9e71d Binary files /dev/null and b/Android64/Debug/pmserverApk/bin/pmserverApk.apk.idsig differ diff --git a/Android64/Debug/pmserverApk/classes/classes.dex b/Android64/Debug/pmserverApk/classes/classes.dex new file mode 100644 index 0000000..fd3c4e7 Binary files /dev/null and b/Android64/Debug/pmserverApk/classes/classes.dex differ diff --git a/Android64/Debug/pmserverApk/classes/classes2.dex b/Android64/Debug/pmserverApk/classes/classes2.dex new file mode 100644 index 0000000..dc64565 Binary files /dev/null and b/Android64/Debug/pmserverApk/classes/classes2.dex differ diff --git a/Android64/Debug/pmserverApk/debug/app_process64 b/Android64/Debug/pmserverApk/debug/app_process64 new file mode 100644 index 0000000..9a10143 Binary files /dev/null and b/Android64/Debug/pmserverApk/debug/app_process64 differ diff --git a/Android64/Debug/pmserverApk/debug/linker64 b/Android64/Debug/pmserverApk/debug/linker64 new file mode 100644 index 0000000..de155df Binary files /dev/null and b/Android64/Debug/pmserverApk/debug/linker64 differ diff --git a/Android64/Debug/pmserverApk/res/drawable-anydpi-v21/splash_image_def.xml b/Android64/Debug/pmserverApk/res/drawable-anydpi-v21/splash_image_def.xml new file mode 100644 index 0000000..094f736 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/drawable-anydpi-v21/splash_image_def.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/Android64/Debug/pmserverApk/res/drawable-anydpi-v24/ic_notification.xml b/Android64/Debug/pmserverApk/res/drawable-anydpi-v24/ic_notification.xml new file mode 100644 index 0000000..e9cdb74 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/drawable-anydpi-v24/ic_notification.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/Android64/Debug/pmserverApk/res/drawable-anydpi-v26/ic_launcher.xml b/Android64/Debug/pmserverApk/res/drawable-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..6b78462 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/drawable-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/Android64/Debug/pmserverApk/res/drawable-anydpi-v31/splash_vector.xml b/Android64/Debug/pmserverApk/res/drawable-anydpi-v31/splash_vector.xml new file mode 100644 index 0000000..6931cb5 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/drawable-anydpi-v31/splash_vector.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/Android64/Debug/pmserverApk/res/drawable-anydpi-v33/ic_launcher.xml b/Android64/Debug/pmserverApk/res/drawable-anydpi-v33/ic_launcher.xml new file mode 100644 index 0000000..8fde456 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/drawable-anydpi-v33/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/Android64/Debug/pmserverApk/res/drawable-night-anydpi-v21/splash_vector.xml b/Android64/Debug/pmserverApk/res/drawable-night-anydpi-v21/splash_vector.xml new file mode 100644 index 0000000..8808cd4 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/drawable-night-anydpi-v21/splash_vector.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/Android64/Debug/pmserverApk/res/drawable-night-anydpi-v31/splash_vector.xml b/Android64/Debug/pmserverApk/res/drawable-night-anydpi-v31/splash_vector.xml new file mode 100644 index 0000000..6931cb5 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/drawable-night-anydpi-v31/splash_vector.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/Android64/Debug/pmserverApk/res/drawable/ic_launcher_background.xml b/Android64/Debug/pmserverApk/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..bc2f5e3 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/drawable/ic_launcher_background.xml @@ -0,0 +1,12 @@ + + + + + diff --git a/Android64/Debug/pmserverApk/res/drawable/ic_launcher_foreground.xml b/Android64/Debug/pmserverApk/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..f05dc2d --- /dev/null +++ b/Android64/Debug/pmserverApk/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/Android64/Debug/pmserverApk/res/drawable/ic_launcher_monochrome.xml b/Android64/Debug/pmserverApk/res/drawable/ic_launcher_monochrome.xml new file mode 100644 index 0000000..fb5e5c0 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/drawable/ic_launcher_monochrome.xml @@ -0,0 +1,15 @@ + + + + + + diff --git a/Android64/Debug/pmserverApk/res/drawable/splash_image_def.xml b/Android64/Debug/pmserverApk/res/drawable/splash_image_def.xml new file mode 100644 index 0000000..d8f5399 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/drawable/splash_image_def.xml @@ -0,0 +1,13 @@ + + + + + + + diff --git a/Android64/Debug/pmserverApk/res/drawable/splash_vector.xml b/Android64/Debug/pmserverApk/res/drawable/splash_vector.xml new file mode 100644 index 0000000..8808cd4 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/drawable/splash_vector.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/Android64/Debug/pmserverApk/res/values-night-v21/colors.xml b/Android64/Debug/pmserverApk/res/values-night-v21/colors.xml new file mode 100644 index 0000000..5df7d1d --- /dev/null +++ b/Android64/Debug/pmserverApk/res/values-night-v21/colors.xml @@ -0,0 +1,4 @@ + + + #000 + diff --git a/Android64/Debug/pmserverApk/res/values-v21/styles.xml b/Android64/Debug/pmserverApk/res/values-v21/styles.xml new file mode 100644 index 0000000..ccf48fe --- /dev/null +++ b/Android64/Debug/pmserverApk/res/values-v21/styles.xml @@ -0,0 +1,6 @@ + + + diff --git a/Android64/Debug/pmserverApk/res/values-v31/styles.xml b/Android64/Debug/pmserverApk/res/values-v31/styles.xml new file mode 100644 index 0000000..a2a1bec --- /dev/null +++ b/Android64/Debug/pmserverApk/res/values-v31/styles.xml @@ -0,0 +1,10 @@ + + + diff --git a/Android64/Debug/pmserverApk/res/values/colors.xml b/Android64/Debug/pmserverApk/res/values/colors.xml new file mode 100644 index 0000000..33b4067 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #FFF + diff --git a/Android64/Debug/pmserverApk/res/values/strings.xml b/Android64/Debug/pmserverApk/res/values/strings.xml new file mode 100644 index 0000000..8587300 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/values/strings.xml @@ -0,0 +1,3 @@ + + + diff --git a/Android64/Debug/pmserverApk/res/values/styles.xml b/Android64/Debug/pmserverApk/res/values/styles.xml new file mode 100644 index 0000000..b46b069 --- /dev/null +++ b/Android64/Debug/pmserverApk/res/values/styles.xml @@ -0,0 +1,6 @@ + + + diff --git a/Android64/Debug/splash_image_def-v21.xml b/Android64/Debug/splash_image_def-v21.xml new file mode 100644 index 0000000..094f736 --- /dev/null +++ b/Android64/Debug/splash_image_def-v21.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/Android64/Debug/splash_image_def.xml b/Android64/Debug/splash_image_def.xml new file mode 100644 index 0000000..d8f5399 --- /dev/null +++ b/Android64/Debug/splash_image_def.xml @@ -0,0 +1,13 @@ + + + + + + + diff --git a/Android64/Debug/strings.xml b/Android64/Debug/strings.xml new file mode 100644 index 0000000..8587300 --- /dev/null +++ b/Android64/Debug/strings.xml @@ -0,0 +1,3 @@ + + + diff --git a/Android64/Debug/styles-v21.xml b/Android64/Debug/styles-v21.xml new file mode 100644 index 0000000..ccf48fe --- /dev/null +++ b/Android64/Debug/styles-v21.xml @@ -0,0 +1,6 @@ + + + diff --git a/Android64/Debug/styles-v31.xml b/Android64/Debug/styles-v31.xml new file mode 100644 index 0000000..a2a1bec --- /dev/null +++ b/Android64/Debug/styles-v31.xml @@ -0,0 +1,10 @@ + + + diff --git a/Android64/Debug/styles.xml b/Android64/Debug/styles.xml new file mode 100644 index 0000000..b46b069 --- /dev/null +++ b/Android64/Debug/styles.xml @@ -0,0 +1,6 @@ + + + diff --git a/AndroidManifest.template.xml b/AndroidManifest.template.xml new file mode 100644 index 0000000..b19eb87 --- /dev/null +++ b/AndroidManifest.template.xml @@ -0,0 +1,63 @@ + + + + +<%uses-permission%> + + +<%queries-child-elements%> + + +<%provider%> +<%application-meta-data%> +<%uses-libraries%> + + + + + + + + +<%services%> + + + + + + + + + + + +<%activity%> +<%receivers%> + + + diff --git a/android-client/PMA.Crypto.pas b/android-client/PMA.Crypto.pas index 3c17721..06ef0a7 100644 --- a/android-client/PMA.Crypto.pas +++ b/android-client/PMA.Crypto.pas @@ -53,6 +53,9 @@ function DeriveKeyPBKDF2(const APassword: string; const ASalt: TBytes; function DeriveKeyPBKDF2Native(const APassword: string; const ASalt: TBytes; AIterations, AKeyLenBytes: Integer): TBytes; +/// Why the last DeriveKeyPBKDF2Native returned nil. Empty when it succeeded. +function LastNativeError: string; + /// AES-256-GCM decrypt. ACipherText carries the 16-byte tag at the end, as /// produced by WebCrypto. Raises EPMACrypto when the tag does not verify — /// which is what a wrong password looks like. @@ -70,6 +73,14 @@ uses Androidapi.JNIBridge, Androidapi.JNI.JavaTypes, Androidapi.Helpers; {$ENDIF} +var + FLastNativeError: string = ''; + +function LastNativeError: string; +begin + Result := FLastNativeError; +end; + // --------------------------------------------------------------------------- // PBKDF2-SHA256 // --------------------------------------------------------------------------- @@ -175,17 +186,31 @@ type end; TJGCMParameterSpec = class(TJavaGenericImport) end; + JKeySpec = interface; JPBEKeySpec = interface; JSecretKey = interface; JSecretKeyFactory = interface; - JPBEKeySpecClass = interface(JObjectClass) + // generateSecret takes a KeySpec, not an Object. Declaring the real + // interface is what makes the bridge emit + // (Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey; — with JObject it + // emitted a signature no method matches, and the call failed at runtime. + JKeySpecClass = interface(IJavaClass) + ['{0A1B2C3D-4E5F-6071-8293-A4B5C6D7E8F9}'] + end; + [JavaSignature('java/security/spec/KeySpec')] + JKeySpec = interface(IJavaInstance) + ['{1B2C3D4E-5F60-7182-93A4-B5C6D7E8F901}'] + end; + TJKeySpec = class(TJavaGenericImport) end; + + JPBEKeySpecClass = interface(JKeySpecClass) ['{1A2B3C4D-5E6F-7081-92A3-B4C5D6E7F801}'] function init(password: TJavaArray; salt: TJavaArray; iterationCount: Integer; keyLength: Integer): JPBEKeySpec; cdecl; end; [JavaSignature('javax/crypto/spec/PBEKeySpec')] - JPBEKeySpec = interface(JObject) + JPBEKeySpec = interface(JKeySpec) ['{2B3C4D5E-6F70-8192-A3B4-C5D6E7F80112}'] end; TJPBEKeySpec = class(TJavaGenericImport) end; @@ -207,7 +232,7 @@ type [JavaSignature('javax/crypto/SecretKeyFactory')] JSecretKeyFactory = interface(JObject) ['{6F708192-A3B4-C5D6-E7F8-011223344556}'] - function generateSecret(keySpec: JObject): JSecretKey; cdecl; + function generateSecret(keySpec: JKeySpec): JSecretKey; cdecl; end; TJSecretKeyFactory = class(TJavaGenericImport) end; @@ -267,11 +292,16 @@ begin AIterations, AKeyLenBytes * 8); // keyLength is in BITS LFactory := TJSecretKeyFactory.JavaClass.getInstance( StringToJString('PBKDF2WithHmacSHA256')); - Result := FromJavaBytes(LFactory.generateSecret(TJObject.Wrap((LSpec as ILocalObject).GetObjectID)).getEncoded); + Result := FromJavaBytes(LFactory.generateSecret(LSpec).getEncoded); except - // Provider missing or algorithm unavailable: the caller falls back to the - // Pascal implementation, which always works. - Result := nil; + // Keep the reason: "unavailable" hid a signature mismatch of mine for a + // whole test round. A message here says whether Android refused, or + // whether the JNI declaration is wrong again. + on E: Exception do + begin + FLastNativeError := E.ClassName + ': ' + E.Message; + Result := nil; + end; end; end; {$ELSE} diff --git a/mainApk.pas b/mainApk.pas index ae05806..1cf1c83 100644 --- a/mainApk.pas +++ b/mainApk.pas @@ -129,7 +129,7 @@ begin LKey := DeriveKeyPBKDF2Native(TESTVECTOR_PASSWORD, LSalt, 600000, 32); LSw.Stop; if LKey = nil then - Log(' indisponible sur cette plateforme') + Log(' indisponible : ' + LastNativeError) else begin LKeyHex := LowerCase(THash.DigestAsString(LKey)); diff --git a/pmserverApk.deployproj b/pmserverApk.deployproj new file mode 100644 index 0000000..3ea86c3 --- /dev/null +++ b/pmserverApk.deployproj @@ -0,0 +1,728 @@ + + + + 12 + + + emulator-5554 + emulator-5554 + + + + + + + pmserverApk\ + pmserverApk.exe + ProjectOutput + 0 + + + True + True + + + + + + pmserverApk\res\drawable-large\ + splash_image.png + Android_SplashImage640 + 1 + + + True + + + pmserverApk\res\drawable-anydpi-v21\ + splash_image_def.xml + AndroidSplashImageDefV21 + 1 + + + True + + + pmserverApk\res\values\ + strings.xml + Android_Strings + 1 + + + True + + + pmserverApk\res\values-v31\ + styles.xml + AndroidSplashStylesV31 + 1 + + + True + + + pmserverApk\res\values\ + colors.xml + Android_Colors + 1 + + + True + + + pmserverApk\res\drawable\ + splash_image_def.xml + AndroidSplashImageDef + 1 + + + True + + + pmserverApk\res\drawable-hdpi\ + ic_launcher.png + Android_LauncherIcon72 + 1 + + + True + + + pmserverApk\res\drawable\ + ic_launcher_monochrome.xml + Android_AdaptiveIconMonochrome + 1 + + + True + + + pmserverApk\res\drawable-mdpi\ + ic_launcher.png + Android_LauncherIcon48 + 1 + + + True + + + pmserverApk\res\drawable-xlarge\ + splash_image.png + Android_SplashImage960 + 1 + + + True + + + pmserverApk\res\drawable\ + splash_vector.xml + Android_VectorizedSplash + 1 + + + True + + + pmserverApk\res\drawable-xhdpi\ + ic_notification.png + Android_NotificationIcon48 + 1 + + + True + + + pmserverApk\res\values-v21\ + styles.xml + AndroidSplashStylesV21 + 1 + + + True + + + pmserverApk\res\drawable\ + ic_launcher_foreground.xml + Android_AdaptiveIconForeground + 1 + + + True + + + pmserverApk\library\lib\armeabi\ + libpmserverApk.so + AndroidLibnativeArmeabiFile + 1 + + + True + + + pmserverApk\res\drawable-anydpi-v33\ + ic_launcher.xml + Android_AdaptiveIconV33 + 1 + + + True + + + pmserverApk\res\drawable-ldpi\ + ic_launcher.png + Android_LauncherIcon36 + 1 + + + True + + + pmserverApk\res\drawable-hdpi\ + ic_notification.png + Android_NotificationIcon36 + 1 + + + True + + + pmserverApk\res\drawable-anydpi-v26\ + ic_launcher.xml + Android_AdaptiveIcon + 1 + + + True + + + pmserverApk\res\values-night-v21\ + colors.xml + Android_ColorsDark + 1 + + + True + + + pmserverApk\res\drawable-xxxhdpi\ + ic_notification.png + Android_NotificationIcon96 + 1 + + + True + + + pmserverApk\res\drawable-anydpi-v31\ + splash_vector.xml + Android_VectorizedSplashV31 + 1 + + + True + + + pmserverApk\res\drawable\ + ic_launcher_background.xml + Android_AdaptiveIconBackground + 1 + + + True + + + pmserverApk\res\drawable-normal\ + splash_image.png + Android_SplashImage470 + 1 + + + True + + + pmserverApk\res\drawable-xxhdpi\ + ic_notification.png + Android_NotificationIcon72 + 1 + + + True + + + pmserverApk\res\drawable-xxhdpi\ + ic_launcher.png + Android_LauncherIcon144 + 1 + + + True + + + pmserverApk\res\drawable-xxxhdpi\ + ic_launcher.png + Android_LauncherIcon192 + 1 + + + True + + + pmserverApk\res\drawable-anydpi-v24\ + ic_notification.xml + Android_VectorizedNotificationIcon + 1 + + + True + + + pmserverApk\res\drawable-xhdpi\ + ic_launcher.png + Android_LauncherIcon96 + 1 + + + True + + + pmserverApk\res\drawable-night-anydpi-v31\ + splash_vector.xml + Android_VectorizedSplashV31Dark + 1 + + + True + + + pmserverApk\ + AndroidManifest.xml + ProjectAndroidManifest + 1 + + + True + + + pmserverApk\res\values\ + styles.xml + AndroidSplashStyles + 1 + + + True + + + pmserverApk\library\lib\armeabi-v7a\ + libpmserverApk.so + ProjectOutput + 1 + + + True + True + + + pmserverApk\library\lib\mips\ + libpmserverApk.so + AndroidLibnativeMipsFile + 1 + + + True + + + pmserverApk\res\drawable-mdpi\ + ic_notification.png + Android_NotificationIcon24 + 1 + + + True + + + pmserverApk\res\drawable-small\ + splash_image.png + Android_SplashImage426 + 1 + + + True + + + pmserverApk\classes\ + pmserverApk.classes + AndroidClasses + 64 + + + True + + + pmserverApk\res\drawable-night-anydpi-v21\ + splash_vector.xml + Android_VectorizedSplashDark + 1 + + + True + + + + + + pmserverApk\res\drawable-anydpi-v26\ + ic_launcher.xml + Android_AdaptiveIcon + 1 + + + True + + + pmserverApk\res\drawable-hdpi\ + ic_launcher.png + Android_LauncherIcon72 + 1 + + + True + + + pmserverApk\res\drawable-mdpi\ + ic_launcher.png + Android_LauncherIcon48 + 1 + + + True + + + pmserverApk\res\drawable-xxhdpi\ + ic_launcher.png + Android_LauncherIcon144 + 1 + + + True + + + pmserverApk\res\drawable-large\ + splash_image.png + Android_SplashImage640 + 1 + + + True + + + pmserverApk\res\drawable\ + ic_launcher_monochrome.xml + Android_AdaptiveIconMonochrome + 1 + + + True + + + pmserverApk\res\values-v31\ + styles.xml + AndroidSplashStylesV31 + 1 + + + True + + + pmserverApk\res\drawable-xxxhdpi\ + ic_notification.png + Android_NotificationIcon96 + 1 + + + True + + + pmserverApk\library\lib\mips\ + libpmserverApk.so + AndroidLibnativeMipsFile + 1 + + + True + + + pmserverApk\res\drawable\ + splash_vector.xml + Android_VectorizedSplash + 1 + + + True + + + pmserverApk\library\lib\armeabi-v7a\ + libpmserverApk.so + AndroidLibnativeArmeabiv7aFile + 1 + + + True + + + pmserverApk\res\drawable-ldpi\ + ic_launcher.png + Android_LauncherIcon36 + 1 + + + True + + + pmserverApk\res\drawable-night-anydpi-v31\ + splash_vector.xml + Android_VectorizedSplashV31Dark + 1 + + + True + + + pmserverApk\res\values\ + styles.xml + AndroidSplashStyles + 1 + + + True + + + pmserverApk\res\drawable-anydpi-v24\ + ic_notification.xml + Android_VectorizedNotificationIcon + 1 + + + True + + + pmserverApk\res\drawable\ + ic_launcher_foreground.xml + Android_AdaptiveIconForeground + 1 + + + True + + + pmserverApk\res\drawable\ + ic_launcher_background.xml + Android_AdaptiveIconBackground + 1 + + + True + + + pmserverApk\res\drawable-anydpi-v33\ + ic_launcher.xml + Android_AdaptiveIconV33 + 1 + + + True + + + pmserverApk\classes\ + pmserverApk.classes + AndroidClasses + 64 + + + True + + + pmserverApk\res\drawable-anydpi-v31\ + splash_vector.xml + Android_VectorizedSplashV31 + 1 + + + True + + + pmserverApk\res\drawable-night-anydpi-v21\ + splash_vector.xml + Android_VectorizedSplashDark + 1 + + + True + + + pmserverApk\ + AndroidManifest.xml + ProjectAndroidManifest + 1 + + + True + + + pmserverApk\res\drawable-xxxhdpi\ + ic_launcher.png + Android_LauncherIcon192 + 1 + + + True + + + pmserverApk\res\values-night-v21\ + colors.xml + Android_ColorsDark + 1 + + + True + + + pmserverApk\res\drawable-xhdpi\ + ic_notification.png + Android_NotificationIcon48 + 1 + + + True + + + pmserverApk\res\drawable-anydpi-v21\ + splash_image_def.xml + AndroidSplashImageDefV21 + 1 + + + True + + + pmserverApk\library\lib\armeabi\ + libpmserverApk.so + AndroidLibnativeArmeabiFile + 1 + + + True + + + pmserverApk\res\values\ + colors.xml + Android_Colors + 1 + + + True + + + pmserverApk\res\drawable\ + splash_image_def.xml + AndroidSplashImageDef + 1 + + + True + + + pmserverApk\res\drawable-hdpi\ + ic_notification.png + Android_NotificationIcon36 + 1 + + + True + + + pmserverApk\res\drawable-xhdpi\ + ic_launcher.png + Android_LauncherIcon96 + 1 + + + True + + + pmserverApk\res\drawable-mdpi\ + ic_notification.png + Android_NotificationIcon24 + 1 + + + True + + + pmserverApk\res\drawable-xlarge\ + splash_image.png + Android_SplashImage960 + 1 + + + True + + + pmserverApk\res\drawable-small\ + splash_image.png + Android_SplashImage426 + 1 + + + True + + + pmserverApk\res\values\ + strings.xml + Android_Strings + 1 + + + True + + + pmserverApk\res\values-v21\ + styles.xml + AndroidSplashStylesV21 + 1 + + + True + + + pmserverApk\library\lib\arm64-v8a\ + libpmserverApk.so + ProjectOutput + 1 + + + True + True + + + pmserverApk\res\drawable-xxhdpi\ + ic_notification.png + Android_NotificationIcon72 + 1 + + + True + + + pmserverApk\res\drawable-normal\ + splash_image.png + Android_SplashImage470 + 1 + + + True + + + + + diff --git a/pmserverApk.dproj b/pmserverApk.dproj index 52d4927..e1333ea 100644 --- a/pmserverApk.dproj +++ b/pmserverApk.dproj @@ -1,4 +1,4 @@ - + {1AB0ADDE-54BE-4156-B446-73E9D7B3BE4D} 20.1 @@ -140,7 +140,7 @@ false true $(BDS)\bin\Artwork\Android\FM_VectorizedNotificationIcon.xml - activity-1.7.2.dex.jar;annotation-experimental-1.3.0.dex.jar;annotation-jvm-1.6.0.dex.jar;annotations-13.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;billing-6.0.1.dex.jar;biometric-1.1.0.dex.jar;browser-1.4.0.dex.jar;cloud-messaging.dex.jar;collection-1.1.0.dex.jar;concurrent-futures-1.1.0.dex.jar;core-1.10.1.dex.jar;core-common-2.2.0.dex.jar;core-ktx-1.10.1.dex.jar;core-runtime-2.2.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;error_prone_annotations-2.9.0.dex.jar;exifinterface-1.3.6.dex.jar;firebase-annotations-16.2.0.dex.jar;firebase-common-20.3.1.dex.jar;firebase-components-17.1.0.dex.jar;firebase-datatransport-18.1.7.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-encoders-proto-16.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.1.3.dex.jar;firebase-installations-interop-17.1.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-23.1.2.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;kotlin-stdlib-1.8.22.dex.jar;kotlin-stdlib-common-1.8.22.dex.jar;kotlin-stdlib-jdk7-1.8.22.dex.jar;kotlin-stdlib-jdk8-1.8.22.dex.jar;kotlinx-coroutines-android-1.6.4.dex.jar;kotlinx-coroutines-core-jvm-1.6.4.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.6.1.dex.jar;lifecycle-livedata-2.6.1.dex.jar;lifecycle-livedata-core-2.6.1.dex.jar;lifecycle-runtime-2.6.1.dex.jar;lifecycle-service-2.6.1.dex.jar;lifecycle-viewmodel-2.6.1.dex.jar;lifecycle-viewmodel-savedstate-2.6.1.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;okio-jvm-3.4.0.dex.jar;play-services-ads-22.2.0.dex.jar;play-services-ads-base-22.2.0.dex.jar;play-services-ads-identifier-18.0.0.dex.jar;play-services-ads-lite-22.2.0.dex.jar;play-services-appset-16.0.1.dex.jar;play-services-base-18.1.0.dex.jar;play-services-basement-18.1.0.dex.jar;play-services-cloud-messaging-17.0.1.dex.jar;play-services-location-21.0.1.dex.jar;play-services-maps-18.1.0.dex.jar;play-services-measurement-base-20.1.2.dex.jar;play-services-measurement-sdk-api-20.1.2.dex.jar;play-services-stats-17.0.2.dex.jar;play-services-tasks-18.0.2.dex.jar;print-1.0.0.dex.jar;profileinstaller-1.3.0.dex.jar;room-common-2.2.5.dex.jar;room-runtime-2.2.5.dex.jar;savedstate-1.2.1.dex.jar;sqlite-2.1.0.dex.jar;sqlite-framework-2.1.0.dex.jar;startup-runtime-1.1.1.dex.jar;tracing-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.1.8.dex.jar;transport-runtime-3.1.8.dex.jar;user-messaging-platform-2.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.7.0.dex.jar + fmx.dex.jar;activity-1.7.2.dex.jar;annotation-experimental-1.3.0.dex.jar;annotation-jvm-1.6.0.dex.jar;annotations-13.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;billing-6.0.1.dex.jar;biometric-1.1.0.dex.jar;browser-1.4.0.dex.jar;cloud-messaging.dex.jar;collection-1.1.0.dex.jar;concurrent-futures-1.1.0.dex.jar;core-1.10.1.dex.jar;core-common-2.2.0.dex.jar;core-ktx-1.10.1.dex.jar;core-runtime-2.2.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;error_prone_annotations-2.9.0.dex.jar;exifinterface-1.3.6.dex.jar;firebase-annotations-16.2.0.dex.jar;firebase-common-20.3.1.dex.jar;firebase-components-17.1.0.dex.jar;firebase-datatransport-18.1.7.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-encoders-proto-16.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.1.3.dex.jar;firebase-installations-interop-17.1.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-23.1.2.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;kotlin-stdlib-1.8.22.dex.jar;kotlin-stdlib-common-1.8.22.dex.jar;kotlin-stdlib-jdk7-1.8.22.dex.jar;kotlin-stdlib-jdk8-1.8.22.dex.jar;kotlinx-coroutines-android-1.6.4.dex.jar;kotlinx-coroutines-core-jvm-1.6.4.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.6.1.dex.jar;lifecycle-livedata-2.6.1.dex.jar;lifecycle-livedata-core-2.6.1.dex.jar;lifecycle-runtime-2.6.1.dex.jar;lifecycle-service-2.6.1.dex.jar;lifecycle-viewmodel-2.6.1.dex.jar;lifecycle-viewmodel-savedstate-2.6.1.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;okio-jvm-3.4.0.dex.jar;play-services-ads-22.2.0.dex.jar;play-services-ads-base-22.2.0.dex.jar;play-services-ads-identifier-18.0.0.dex.jar;play-services-ads-lite-22.2.0.dex.jar;play-services-appset-16.0.1.dex.jar;play-services-base-18.1.0.dex.jar;play-services-basement-18.1.0.dex.jar;play-services-cloud-messaging-17.0.1.dex.jar;play-services-location-21.0.1.dex.jar;play-services-maps-18.1.0.dex.jar;play-services-measurement-base-20.1.2.dex.jar;play-services-measurement-sdk-api-20.1.2.dex.jar;play-services-stats-17.0.2.dex.jar;play-services-tasks-18.0.2.dex.jar;print-1.0.0.dex.jar;profileinstaller-1.3.0.dex.jar;room-common-2.2.5.dex.jar;room-runtime-2.2.5.dex.jar;savedstate-1.2.1.dex.jar;sqlite-2.1.0.dex.jar;sqlite-framework-2.1.0.dex.jar;startup-runtime-1.1.1.dex.jar;tracing-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.1.8.dex.jar;transport-runtime-3.1.8.dex.jar;user-messaging-platform-2.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.7.0.dex.jar FireDACIBDriver;fmx;DbxCommonDriver;bindengine;IndyIPCommon;IndyProtocols;dbxcds;FmxTeeUI;FireDACSqliteDriver;DbxClientDriver;soapmidas;dbexpress;inet;CustomIPTransport;IndySystem;ibxbindings;FireDACCommon;bindcompdbx;rtl;DBXSqliteDriver;FireDAC;xmlrtl;ibxpress;dsnap;FireDACCommonDriver;IndyIPClient;bindcompfmx;ibmonitor;fmxFireDAC;dbrtl;DBXInterBaseDriver;bindcomp;IndyCore;RESTBackendComponents;RESTComponents;IndyIPServer;dsnapxml;tethering;CloudService;FMXTee;soaprtl;soapserver;$(DCC_UsePackage) @@ -174,7 +174,7 @@ false true $(BDS)\bin\Artwork\Android\FM_VectorizedNotificationIcon.xml - activity-1.7.2.dex.jar;annotation-experimental-1.3.0.dex.jar;annotation-jvm-1.6.0.dex.jar;annotations-13.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;billing-6.0.1.dex.jar;biometric-1.1.0.dex.jar;browser-1.4.0.dex.jar;cloud-messaging.dex.jar;collection-1.1.0.dex.jar;concurrent-futures-1.1.0.dex.jar;core-1.10.1.dex.jar;core-common-2.2.0.dex.jar;core-ktx-1.10.1.dex.jar;core-runtime-2.2.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;error_prone_annotations-2.9.0.dex.jar;exifinterface-1.3.6.dex.jar;firebase-annotations-16.2.0.dex.jar;firebase-common-20.3.1.dex.jar;firebase-components-17.1.0.dex.jar;firebase-datatransport-18.1.7.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-encoders-proto-16.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.1.3.dex.jar;firebase-installations-interop-17.1.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-23.1.2.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;kotlin-stdlib-1.8.22.dex.jar;kotlin-stdlib-common-1.8.22.dex.jar;kotlin-stdlib-jdk7-1.8.22.dex.jar;kotlin-stdlib-jdk8-1.8.22.dex.jar;kotlinx-coroutines-android-1.6.4.dex.jar;kotlinx-coroutines-core-jvm-1.6.4.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.6.1.dex.jar;lifecycle-livedata-2.6.1.dex.jar;lifecycle-livedata-core-2.6.1.dex.jar;lifecycle-runtime-2.6.1.dex.jar;lifecycle-service-2.6.1.dex.jar;lifecycle-viewmodel-2.6.1.dex.jar;lifecycle-viewmodel-savedstate-2.6.1.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;okio-jvm-3.4.0.dex.jar;play-services-ads-22.2.0.dex.jar;play-services-ads-base-22.2.0.dex.jar;play-services-ads-identifier-18.0.0.dex.jar;play-services-ads-lite-22.2.0.dex.jar;play-services-appset-16.0.1.dex.jar;play-services-base-18.1.0.dex.jar;play-services-basement-18.1.0.dex.jar;play-services-cloud-messaging-17.0.1.dex.jar;play-services-location-21.0.1.dex.jar;play-services-maps-18.1.0.dex.jar;play-services-measurement-base-20.1.2.dex.jar;play-services-measurement-sdk-api-20.1.2.dex.jar;play-services-stats-17.0.2.dex.jar;play-services-tasks-18.0.2.dex.jar;print-1.0.0.dex.jar;profileinstaller-1.3.0.dex.jar;room-common-2.2.5.dex.jar;room-runtime-2.2.5.dex.jar;savedstate-1.2.1.dex.jar;sqlite-2.1.0.dex.jar;sqlite-framework-2.1.0.dex.jar;startup-runtime-1.1.1.dex.jar;tracing-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.1.8.dex.jar;transport-runtime-3.1.8.dex.jar;user-messaging-platform-2.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.7.0.dex.jar + fmx.dex.jar;activity-1.7.2.dex.jar;annotation-experimental-1.3.0.dex.jar;annotation-jvm-1.6.0.dex.jar;annotations-13.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;billing-6.0.1.dex.jar;biometric-1.1.0.dex.jar;browser-1.4.0.dex.jar;cloud-messaging.dex.jar;collection-1.1.0.dex.jar;concurrent-futures-1.1.0.dex.jar;core-1.10.1.dex.jar;core-common-2.2.0.dex.jar;core-ktx-1.10.1.dex.jar;core-runtime-2.2.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;error_prone_annotations-2.9.0.dex.jar;exifinterface-1.3.6.dex.jar;firebase-annotations-16.2.0.dex.jar;firebase-common-20.3.1.dex.jar;firebase-components-17.1.0.dex.jar;firebase-datatransport-18.1.7.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-encoders-proto-16.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.1.3.dex.jar;firebase-installations-interop-17.1.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-23.1.2.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;kotlin-stdlib-1.8.22.dex.jar;kotlin-stdlib-common-1.8.22.dex.jar;kotlin-stdlib-jdk7-1.8.22.dex.jar;kotlin-stdlib-jdk8-1.8.22.dex.jar;kotlinx-coroutines-android-1.6.4.dex.jar;kotlinx-coroutines-core-jvm-1.6.4.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.6.1.dex.jar;lifecycle-livedata-2.6.1.dex.jar;lifecycle-livedata-core-2.6.1.dex.jar;lifecycle-runtime-2.6.1.dex.jar;lifecycle-service-2.6.1.dex.jar;lifecycle-viewmodel-2.6.1.dex.jar;lifecycle-viewmodel-savedstate-2.6.1.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;okio-jvm-3.4.0.dex.jar;play-services-ads-22.2.0.dex.jar;play-services-ads-base-22.2.0.dex.jar;play-services-ads-identifier-18.0.0.dex.jar;play-services-ads-lite-22.2.0.dex.jar;play-services-appset-16.0.1.dex.jar;play-services-base-18.1.0.dex.jar;play-services-basement-18.1.0.dex.jar;play-services-cloud-messaging-17.0.1.dex.jar;play-services-location-21.0.1.dex.jar;play-services-maps-18.1.0.dex.jar;play-services-measurement-base-20.1.2.dex.jar;play-services-measurement-sdk-api-20.1.2.dex.jar;play-services-stats-17.0.2.dex.jar;play-services-tasks-18.0.2.dex.jar;print-1.0.0.dex.jar;profileinstaller-1.3.0.dex.jar;room-common-2.2.5.dex.jar;room-runtime-2.2.5.dex.jar;savedstate-1.2.1.dex.jar;sqlite-2.1.0.dex.jar;sqlite-framework-2.1.0.dex.jar;startup-runtime-1.1.1.dex.jar;tracing-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.1.8.dex.jar;transport-runtime-3.1.8.dex.jar;user-messaging-platform-2.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.7.0.dex.jar FireDACIBDriver;fmx;DbxCommonDriver;bindengine;IndyIPCommon;IndyProtocols;dbxcds;FmxTeeUI;FireDACSqliteDriver;DbxClientDriver;soapmidas;dbexpress;inet;CustomIPTransport;IndySystem;ibxbindings;FireDACCommon;bindcompdbx;rtl;DBXSqliteDriver;FireDAC;xmlrtl;ibxpress;dsnap;FireDACCommonDriver;IndyIPClient;bindcompfmx;ibmonitor;fmxFireDAC;fmxase;dbrtl;DBXInterBaseDriver;bindcomp;IndyCore;RESTBackendComponents;RESTComponents;IndyIPServer;dsnapxml;tethering;CloudService;FMXTee;soaprtl;soapserver;$(DCC_UsePackage) diff --git a/pmserverApk.res b/pmserverApk.res index f9fd9e4..36f26e2 100644 Binary files a/pmserverApk.res and b/pmserverApk.res differ