Token Developer Portal
OKC Platform
OKC Platform
  • Architecture
  • Quick Start Guide
  • Template Banking App
  • Payment Services
    • UI Components
    • Card Service
    • Bank App Protocol
    • SDK Integrations
    • 🆕Doviz POS Integration
    • In Car Pay Integration
  • System and Security Services
    • KMS Library
    • Device Library
    • RKL CA service
    • TMS Service
    • Printer Service
    • TokenUSDK
  • Versions
    • Platform Versions
Powered by GitBook
On this page
  1. System and Security Services

TMS Service

Introduction

In order to upload applications to server and deploy them successfully on devices, following conditions should be met:

  • Manifest files should be adjusted to have required metadata

  • apk files must be signed with appropriate keys

Adjusting the Manifest File

Fields below should be in AndroidManifest.xml, under manifest -> application -> meta-data tags, as name-value pairs.

Name
Type
Length
Description
Example
Required

app_name

String

At most 20

Application name with application type prefix

“LYL_COMPANYNAME”

or

"BNK_ID_COMPANYNAME"

Yes

app_model_type

String

At most 8

Model type name (should match with model type name in ATMS)

“400TR”

Yes

app_version

Integer

-

Version of the application

"1"

Yes

Separate apks should be created for 400TR, 1000TR, X30TR devices. The apk prepared for 400TR should have 400TR information in the XML file. The apk prepared for 1000TR should have 1000TR information. The apk prepared for X30TR should have X30TR information.

// for app_name
// if you are Retail developer then "LYL_COPMANYNAME" 
// if you are an Bank developer "BNK_ID_COMPANYNAME"

Example 400TR:

Retail:

<manifest ... >
    ...
    <application ... >
        ...
        <meta-data android:name="app_name" android:value="LYL_COMPANYNAME" /> 
        <meta-data android:name="app_model_type" android:value="400TR" /> // For 400TR devices
        <meta-data android:name="app_version" android:value="40000110" /> // Change Android  Version major/minor/build into integer. We kindly request this change. Version no must start with 400. Example: 40000110.
     </application>
...

Bank:

<manifest ... >
    ...
    <application ... >
        ...
        <meta-data android:name="app_name" android:value="BNK_ID_COMPANYNAME" /> 
        <meta-data android:name="app_model_type" android:value="400TR" /> // For 400TR devices
        <meta-data android:name="app_version" android:value="40000110" /> // Change Android  Version major/minor/build into integer. We kindly request this change. Version no must start with 400. Example: 40000110.
     </application>
...

Example 1000TR:

Bank:

<manifest ... >
    ...
    <application ... >
        ...
        <meta-data android:name="app_name" android:value="LYL_COMPANYNAME" /> 
        <meta-data android:name="app_model_type" android:value="1000TR" /> // For 1000TR devices
        <meta-data android:name="app_version" android:value="100000110" /> // Change Android  Version major/minor/build into integer. We kindly request this change. Version no must start with 1000. Example: 100000110.
     </application>
...    

Bank:

<manifest ... >
    ...
    <application ... >
        ...
        <meta-data android:name="app_name" android:value="BNK_ID_COMPANYNAME" /> // if you are Retail developer then "LYL_COPMANYNAME" , if you are an Bank developer "BNK_ID_COMPANYNAME"
        <meta-data android:name="app_model_type" android:value="1000TR" /> // For 1000TR devices
        <meta-data android:name="app_version" android:value="100000110" /> // Change Android  Version major/minor/build into integer. We kindly request this change. Version no must start with 1000. Example: 100000110.
     </application>
...    

Example X30TR:

Retail:

<manifest ... >
    ...
    <application ... >
        ...
        <meta-data android:name="app_name" android:value="LYL_COMPANYNAME" /> // if you are Retail developer then "LYL_COPMANYNAME" , if you are an Bank developer "BNK_ID_COMPANYNAME"
        <meta-data android:name="app_model_type" android:value="330TR" /> // For 330TR devices
        <meta-data android:name="app_version" android:value="33000110" /> // Change Android  Version major/minor/build into integer. We kindly request this change. Version no must start with 330. Example: 33000110.
     </application>
...    

Bank:

<manifest ... >
    ...
    <application ... >
        ...
        <meta-data android:name="app_name" android:value="BNK_ID_COMPANYNAME" /> // if you are Retail developer then "LYL_COPMANYNAME" , if you are an Bank developer "BNK_ID_COMPANYNAME"
        <meta-data android:name="app_model_type" android:value="330TR" /> // For 330TR devices
        <meta-data android:name="app_version" android:value="33000110" /> // Change Android  Version major/minor/build into integer. We kindly request this change. Version no must start with 330. Example: 33000110.
     </application>
...    

To convert version name to manifest data, you can use following example in your build.gradle

apply plugin: 'com.android.application'

// This section is parsing Android manifest file, reads version in the meta-data tag, writes it into version name in gradle
// so that the version shown in the android settinsg is same as version in the meta-tag
def versionFromManifest

task parseManifest() {
    def manifest = new XmlSlurper().parse(file(android.sourceSets.main.manifest.srcFile)).declareNamespace(android: 'http://schemas.android.com/apk/res/android');
    println manifest.@package
    manifest.application["meta-data"].each {
        def m = it.attributes()['android:name'] =~ /app_version/
        if (m.find()) {
            versionFromManifest = it.attributes()['android:value'].toString()
        }
    }
}

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.atms_alpha"
        minSdkVersion 26
        targetSdkVersion 28
        versionCode versionFromManifest.toInteger()
        versionName "${versionFromManifest}"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        setProperty("archivesBaseName", "ATMS_Alpha_" + versionFromManifest)

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}
PreviousRKL CA serviceNextPrinter Service

Last updated 1 day ago