# Miscellaneous ## Minimum Requirements We officially support the 3 latest major Android versions. You can try older versions but there are no guarantees it will work as expected. ### Running Sinch SDK on Android KitKat The minimum API level on which Android Sinch SDK can run is 19 (Android KitKat). Because this version is the last one without default built-in support for TLSv1.1 and TLSv1.2 (see [Default configuration for different Android versions](https://developer.android.com/reference/javax/net/ssl/SSLSocket#default-configuration-for-different-android-versions)), which is required by the `ocra.api.sinch.com` endpoint, if you want to run the SDK on that specific API you have to patch the security provider: ```java /** * Patches default security provider. This method should only be used on KitKat devicec * @param context */ public static void patchProvider(Context context){ try { SSLContext.getInstance("TLSv1.2"); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } try { ProviderInstaller.installIfNeeded(mContext.getApplicationContext()); } catch (GooglePlayServicesRepairableException e) { e.printStackTrace(); } catch (GooglePlayServicesNotAvailableException e) { e.printStackTrace(); } } ``` Note: Google Play services must be available on the device. ## Note on Sinch SDK Size The *Sinch Android SDK aar* library includes a common Java library of approximately 900 KB, and four binaries containing the architectures *armv7*, *arm64*, *x86*, and *x86_64*, which size varies from 6.2 MB for *armv7* to 11.1 MB for *x86_64*, with the *armv64* having 10.2 MB in size. Combined and compressed in the *aar* it yields over 17 MB in size. To reduce the footprint, it's highly recommended to use the *Android App Bundle* publishing format (see [https://developer.android.com/platform/technology/app-bundle](https://developer.android.com/platform/technology/app-bundle)). In that case, only the common Java code and target architecture binary will be included in the final package. As an example, the rough estimation of typical *arm64* distribution will have 900 KB + 10.2 MB yielding slightly over 11 MB before compression (which is hard to estimate, but can be assumed within 1x-2x range). You can always check your app download and install size in the Google Play Console ([https://support.google.com/googleplay/android-developer/answer/9302563](https://support.google.com/googleplay/android-developer/answer/9302563)) ## Restrictions on User IDs User IDs **must not** be longer than **255** bytes, **must** only contain URL-safe characters, and be restricted to the following character set: ```text ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghjiklmnopqrstuvwxyz0123456789-_= ``` If you need to use *User IDs* containing characters outside the allowed set above, you could consider *base64*-encoding the raw *User IDs* using a URL-safe base64 alphabet as described in [https://tools.ietf.org/html/rfc4648#section-5](https://tools.ietf.org/html/rfc4648#section-5)). Note how the allowed character set overlaps with the URL-safe base64 alphabet, but doesn't allow characters in the **non**-URL-safe alphabet. For example, `/` (forward slash) and `+` (plus sign). ## Encryption Export Regulations Please check the Summary of U.S. Export Controls Applicable to Commercial Encryption Products and ensure that the application is registered for the Encryption Regulations, if applicable. It can be found under this [link](https://www.bis.doc.gov/index.php/policy-guidance/encryption). ## Local Database File Sinch SDK needs a local database file to operate properly. It's located in the local application storage - *sinch/db/* subfolder relative to the *context.getFilesDir()*. The application **must not** delete this folder. ## Statistics The Sinch SDK client uploads statistics to the Sinch servers at the end of a call, a call failure, or a similar event. The statistics are used for the monitoring of network status, call quality, and other aspects regarding the general quality of the service. Some of the information **is not** anonymous and may be associated with the User ID call participants. The statistics upload is done by the client in the background. ## Third-Party libraries and Copyright Notices All Third Party Libraries and Copyright notices can be found under this [link](https://www.sinch.com/terms-of-service/).