background image

10

1.3  

System APK signing

 When the 

 ISV 

 wants to design, on the TAB10s, some APK not requiring 

 system 

 rights to be executed, in this case no APK signing is required.

To design an APK having 

 system 

 privileges like the surround light driving, reboot control or URL launcher, the ISV needs to sign its APK with a 

 Java Keystore 

 having a

certificate 

 signed by 

 Qeedji 

.

 The ISV may use his 

 Java Keystore 

 for all its 

 system 

 applica ons and the same cer ficate for all the ISV TAB10s devices. When APK signing is required, each 

 ISV 

 must

apply this procedure once.

Procedure to create a system Java Keystore

 

 In the example, it is considered that the company name is Contoso. ISD means IT Service Department. In the procedure, it is required to use the generic email of the

Chief Informa on Security Officer (CISO) of the company, for example 

 ciso@contoso.com 

.

 In the following procedure, the following example values have been used.

Label type

Label value examples

C

US

ST

California

L

San-Francisco

O

Contoso

OU

Contoso_ISD

CN

CISO

E

ciso@contoso.com

Passphrase

1234

Java_keystore name

contoso_qeedji_java_keystore

Java_keystore password

567890

Friendly name

qeedji_aosp_key

1 . GENERATE YOUR PRIVATE KEY

 

 

You are responsible for your private key storing which has to be never communicated to a third party.

 

Generate your private key with a length of 2048 bits with the 

RSA 2048 Bits

 key type.

 

For example:

 

openssl genrsa -f4 2048 > contoso_private_key_for_android.key

2 . GENERATE YOUR OWN CSR (CERTIFICATE SIGNING REQUEST)

 

Generate your own 

 .csr 

 cer ficate signing request thanks to your private key and some applicant iden fica on used to digitally sign the request. Thanks to match the

filename pa ern by replacing contoso by your own organiza on name.

 

For example:

 

openssl req -new -key contoso_private_key_for_android.key -subj '/C=US/ST=California/L=San-

Francisco/O=Contoso/OU=Contoso_ISD/CN=CISO/emailAddress=ciso@contoso.com' > contoso-for_qeedji_aosp.csr

3 . SEND YOUR CSR TO QEEDJI

 

Once generated, send a email to the 

csr@qeedji.tech

 with your 

 CSR 

 (

 contoso-for_qeedji_aosp.csr 

 file for example) in a achment.

4 . WAIT FOR THE QEEDJI ANSWER

 

 Qeedji 

 should then return an answer within 7 days.

 

 

Qeedji will send its answer to the email defined into the CSR file (ciso@contoso.com for example), which may be not the same email used to send the CSR to Qeedji.

 

 Qeedji 

 sends 2 files: the signed cer ficate (extension .crt) and the CA file (extension .pem).

 

For example:

 contoso-qeedji_aosp-certificate-001A.crt 

,

 contoso-qeedji_aosp-certificate_authority-001A.pem 

5 . GENERATE YOUR PUBLIC CERTIFICATE KEY

 

You have first to generate your public cer ficate key. For example:

 

openssl pkcs12 -export -in contoso-qeedji_aosp-cer ficate-001A.crt -inkey contoso_private_key_for_android.key -out

contoso_cer ficate_and_key_for_qeedji_aosp.pk12 -password pass:1234 -name qeedji_aosp_key -chain -CAfile contoso-qeedji_aosp-cer ficate_authority-001A.pem

6 . GENERATE THE JAVA KEYSTORE

 

Generate then a 

 Java Keystore 

 from your public cer ficate key with the 

 keytool 

¹ toolbox.

 

The 

 Java Keystore 

 system is now usable in 

 Android Studio 

.

 

For example:

 

keytool -importkeystore -deststorepass 567890 -destkeystore contoso_qeedji_java_keystore.jks -srckeystore contoso_cer ficate_and_key_for_qeedji_aosp.pk12 -

srcstoretype PKCS12 -srcstorepass 1234

¹ 

Keytool is a toolbox to handle cer ficates for Java products. It is provided by default in the JDK since version 1.1.

Summary of Contents for TAB10s

Page 1: ...Developer manual 001H AOSP 9 10 10 TAB10s 8 30 ...

Page 2: ...la on is of the utmost importance Incorrect fi ng and or installa on may result in personal injury or loss Qeedji disclaims all liability of whatever kind if the product is assembled fi ed and or installed in an incorrect manner Do not use the product near a water supply Do not pour anything on the product like flammable liquids or material Do not expose the product to direct sun near a hea ng source...

Page 3: ...3 1 1 1 2 1 3 1 4 1 4 1 1 4 2 1 5 2 1 Table of content Part I Introduc on APK Development System APK signing Qeedji System service Installa on by USB AOSP device mode Qeedji preferences Part II Contacts ...

Page 4: ...dji TAB10s and who already have Android APK development skills It is recommended to read first the TAB10s user manual Demo Package Content Items Descrip on Quan ty TAB10s Qeedji tablet embedding AOSP 1 Power supply USB Type C 1 USB Type C cable Cable Assembly Type C Male to Type A Male 1 USB hub USB Type A 2 0 USB Type C 1 ...

Page 5: ...ch qeedji host webview aar Android library exposes an Javascript API for specific func onali es in a WebView The tech qeedji host webview aar Android library embeds the tech qeedji system lib classes jar library String Host Bluetooth getHardwareAddress String Host Device getModel String Host Device getManufacturer String Host Device getSerial String Host Device getPsn String Host Device getSoftware...

Page 6: ...der in its manifest xml version 1 0 encoding utf 8 manifest xmlns android http schemas android com apk res android package tech qeedji test1 application android icon mipmap ic_launcher android label string app_name android roundIcon mipmap ic_launcher_round android theme style AppTheme activity android name MainActivity intent filter action android name android intent action MAIN category android ...

Page 7: ... surround_light APK allows to set the surround light color and state with steady green steady orange steady red off This APK uses the SurroundLight class described in the specific API device_info APK displays device informa ons This APK uses the android os Build APIs NetworkInterface and the DipSwitch class described in the specific API These permissions are required READ_PHONE_STATE READ_PRIVILEGED_...

Page 8: ...er load an URL This APK uses the WebView API and the tech qeedji host webview aar Android library for Qeedji The RECEIVE_BOOT_COMPLETED and INTERNET permissions are required This APK has system privileges A specific 000000000000 js configura on script allows to configure the URL launcher APK set URL set login creden als Several websites examples are available on Qeedji github for TAB10s Designing an ...

Page 9: ...lug to the TAB10s USB C connector Then wait for the TAB10s is boo ng up Go in the Settings applica on and configure the WLAN LAN debug Prerequisite have a suitable Ethernet to USB USB C or POGO type connector bridge which is connected to the LAN network Connect the Ethernet to USB bridge to on the TAB10s USB C or POGO type connector Debug mode se ng Launch the Settings applica on press on the About...

Page 10: ...me applicant iden fica on used to digitally sign the request Thanks to match the filename pa ern by replacing contoso by your own organiza on name For example openssl req new key contoso_private_key_for_android key subj C US ST California L San Francisco O Contoso OU Contoso_ISD CN CISO emailAddress ciso contoso com contoso for_qeedji_aosp csr 3 SEND YOUR CSR TO QEEDJI Once generated send a email to...

Page 11: ... app_name android roundIcon mipmap ic_launcher_round android supportsRtl true android theme style AppTheme activity android name MainActivity intent filter action android name android intent action MAIN category android name android intent category LAUNCHER intent filter activity application manifest 2 SIGN THE APPLICATION WITH YOUR SYSTEM JAVA KEYSTORE When crea ng the APK sign the APK with your ...

Page 12: ...on of the TAB10s This service allows to install one or more APK by USB storage device inser on update the AOSP firmware by USB storage device inser on configure the product with a Javascript file by USB storage device inser on by DHCP code 66 This service allows also to configure the AOSP device mode as soon as the device has started ...

Page 13: ...nt the line disableExternalStorageCopyApk in the configura on script then follow the configuration by USB procedure If the USB storage device contains several APK at the root each APK is installed in alphabe cal order AOSP firmware upgrade Copy the AOSP firmware zip on the root directory of the USB storage device Insert the USB storage device in the TAB10s and follow the instruc ons on the screen For...

Page 14: ...the default AOSP device mode is native If the persist sys device_mode system property value is kiosk the SystemUI service inhibits the system bars and the Launcher3 service hides the AllApps view and the Op onsPopupView dialog box The persist sys device_mode system property can be changed by using the configura on script native setDeviceModeNative default mode setDeviceModeKiosk kiosk setDeviceMode...

Page 15: ... preference value is true the APK installa on from the root of the USB storage is authorized Shared preferences for the URL Launcher APK The shared preferences for URL Launcher APK is stored in the tech qeedji url_launcher prefs xml file In case login creden als are required to connect to the URL an addi onal shared preferences tech qeedji url_launcher credential credential_label prefs xml file is r...

Page 16: ...refs Type R W Default value Values Descrip on type String RW HttpAuth HttpAuth Define the creden al type username String RW Define the URL creden al username password String WO Define the URL creden al password In this version only the HttpAuth value is possible ...

Page 17: ...er to the Qeedji Website for FAQ applica on notes and so ware downloads h ps www qeedji tech Qeedji FRANCE INNES SA 5A rue Pierre Joseph Colin 35700 RENNES Tel 33 0 2 23 20 01 62 Fax 33 0 2 23 20 22 59 Qeedji GERMANY INNES SA Verbindungsbüro Deutschland Lebacher Str 4 66113 Saarbrücken Tel 09386 979 39 14 Fax 09386 979 39 15 Mob 0175 853 67 81 ...

Reviews: