Skip to main content
Samsung Developer Program

Binary File Specifications and Indications

Specify basic app information, supported device functionality, and device compatibility with the app in the binary manifest files

You specify app information, device feature support and non-support in the app's binary files. This information is used to determine app suitability and user device recommendations.

Note: In August 2018, Samsung Gear became Samsung Galaxy Watch. Information referring to Galaxy Watch also applies to earlier Gear devices and apps, unless stated otherwise.

Binary File Specifications

This section describes how to specify basic app information (such as version code number), device functionality supported by the app (such as telephony), and device compatibility with the app based on uses-features, uses-permissions, metadata, and feature listings that must be specified in the app's binary manifest files.

During app registration and validation testing, data below is extracted from registered binaries. Seller Office determines app compatible devices by searching for the specified manifest listings during the automated phase of pre-validation, which uses the compatible device information.
 

Basic App Information

Add code to your app's binary file to indicate fundamental app data.

You specify fundamental aspects and features in your app's manifest file (Android apps), config.xml file (Tizen wearable web apps), or Tizen manifest file (Tizen wearable native apps).

 

Purpose / binary code that determines field entry

Package name *

Application package name (Android apps) and application ID (Tizen wearable web and native apps):

Android manifest

 

package (text string with two text segments separated by a dot, and each segment must start with a letter, followed by alphanumeric characters and underscores, maximum length: 1000 characters)

<manifest xmlns:android="http://schemas.android.
com/apk/res/android"
android:versionCode="2" android:versionName="1.0.0.1" package="package.name.sample">    

Note: See the update conflict prevention information below.
 

Tizen wearable config.xml

package (text string, maximum length: 1000 characters)
 

 

Tizen manifest

package (text string, maximum length: 1000 characters)

* <manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.basic" version="1.0.0" api-version="2.3.1">

 

For Android apps only, you must prevent conflicts for users updating your Android app published in Galaxy Apps when your Android app is also published in other app stores.

You can either:

  • Use a unique package name for your app published in the Galaxy Apps store.
    For example, your app com.myapp is published in another app store. You can register the same app as com.myapp.galaxy for the Galaxy Apps store.  
    App binaries with different package names can have the same code base. Package names can be changed by modifying the build settings.
    or
  • Use a signing key for your app published in the Galaxy Apps store that is different from the signing keys for all other app stores.
    Because the package name does not change, there should not be any back-end dependency issues.
    Note: Keep track of all signing keys used for different app store versions of your app.
    or
  • If neither of those methods is feasible, then submit an SDP help ticket. We will help you determine another method that you can use to differentiate your Galaxy Apps service app.
     

When you use either the unique package name or different signing key method:

  • There is no dependency on other app stores. Users who download your app from Galaxy Apps will receive app updates from only Galaxy Apps.
  • Your app version registered through Samsung Seller Office has to pass certification. After your app is approved, it will be distributed in the Galaxy Apps store.

 

Version code *

Sequential numeric value of the app code version, which is used to compare binary versions 
Note: Each successive app code version must be higher than all previous versions.

Android manifest

 

versionCode (integer, maximum length binary version: 1000)                 

manifest.xml file:
* <manifest xmlns:android="http://schemas.android.
com/apk/res/android"
android:versionCode="2" android:versionName="1.0.0.1" package="package.name.sample">    

Tizen wearable config.xml

 

version (integer)

 

Tizen manifest

 

version (integer)

 

 

Version name *

Text string of the app code version, which is displayed in the Samsung Galaxy Apps store.

Android manifest versionName (text string, format: no restrictions, maximum length: 1000 characters)
Tizen wearable config.xml Not used.
Tizen manifest Not used.

 

Minimum SDK Version

The lowest API level supported (when specified) or the default value (when not specified):

Android manifest minSdkVersion (default value: 1)
Tizen wearable config.xml required_version (default value: 2.3.1)
Tizen manifest api_version (default value: 2.3.1)

 

For more details about:

Android Device Features

Add code to the binary file manifest to indicate user device features that your app requires, can support, or cannot support.

Upon uploading a app binary file, Seller Office determines app compatible devices based on the following:

  • If there are no criteria for determining if a feature is used or not used, 'not used' is the default value, except for TouchScreen, for which 'used' is the default value.
  • If a binary file indicates it uses all features,  only the devices that support those features are recommended.
  • If a binary file indicates it does not use any feature, all devices are recommended.
    However, if Faketouch is used while TouchScreen is not used, only Homesync devices are recommended.

 

Feature

Purpose / binary code that determines feature support

VoIP

Whether the app does or does not support Voice over IP

Supports              

If one or more of these uses-features exists in the binary file manifest:

<uses-feature android:name="android.software.sip.voip" android:required="true"/>
<uses-feature android:name="android.software.sip.voip"/>
<uses-feature android:name="android.hardware.sip.voip" android:required="true"/>
<uses-feature android:name="android.hardware.sip.voip"/>

Does not support

If either of these uses-features exists in the binary file:

<uses-feature android:name="android.software.sip.voip" android:required="false"/>
<uses-feature android:name="android.hardware.sip.voip" android:required="false"/>

Telephony

Whether the app does or does not support telephony

Does support telephony   

If one or more of these uses-features exist in the binary file manifest:

<uses-feature android:name="android.hardware.telephony" android:required="true"/>
<uses-feature android:name="android.hardware.telephony"/>
<uses-feature android:name="android.hardware.telephony.cdma" android:required="true"/>
<uses-feature android:name="android.hardware.telephony.cdma"/>
<uses-feature android:name="android.hardware.telephony.gsm" android:required="true"/>
<uses-feature android:name="android.hardware.telephony.gsm"/>

If one or more of these uses-permissions exist in the binary file manifest:

<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.CALL_PRIVILEGED"/>
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_MMS"/>
<uses-permission android:name="android.permission.RECEIVE_WAP_PUSH"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>

Does not support telephony

If no uses-feature cases or no uses-permissions exist in the manifest.

If uses-feature required = "false": uses-feature has priority, even when the Telephony permission exists.

If one or more of these uses-features exist in the binary file manifest:

<uses-feature android:name="android.hardware.telephony" android:required="false"/>
<uses-feature android:name="android.hardware.telephony.cdma" android:required="false"/>
<uses-feature android:name="android.hardware.telephony.gsm" android:required="false"/>

NFC

 

Whether the app does or does not support NFC

Supports              

If one or both of these uses-features exists in the binary file manifest:

<uses-feature android:name="android.hardware.nfc" android:required="true"/>
<uses-feature android:name="android.hardware.nfc"/>

If this uses-permission exists in the binary file manifest:

<uses-permission android:name="android.permission.NFC"/>

Does not support

If no uses-feature cases and nor android.permission.NFC exist in the manifest.

If uses-feature required = "false", uses-feature has priority, even when the NFC permission exists.

<uses-feature android:name="android.hardware.nfc " android:required="false"/>

TouchScreen

Whether the app uses TouchScreen, or uses TouchScreen but use is not required

Uses and is required        

If no uses-feature cases exist in the manifest.

If one or more of these uses-features exist in the binary file manifest:

<uses-feature android:name="android.hardware.touchscreen" android:required="true"/>
<uses-feature android:name="android.hardware.touchscreen"/>
<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="true"/>
<uses-feature android:name="android.hardware.touchscreen.multitouch"/>
<uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="true"/>
<uses-feature android:name="android.hardware.touchscreen.multitouch.distinct"/>
<uses-feature android:name="android.hardware.touchscreen.multitouch.jazzhand" android:required="true"/>
<uses-feature android:name="android.hardware.touchscreen.multitouch.jazzhand"/>

Uses but use is not required

If this uses-feature exists in the binary file manifest:

<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>​​​

 

Faketouch

Whether the app does or does not support Faketouch

Supports

If one or more of these uses-features exists in the binary file manifest:

<uses-feature android:name="android.hardware.faketouch" android:required="true"/>
<uses-feature android:name="android.hardware.faketouch"/>
<uses-feature android:name="android.hardware.faketouch.multitouch.distinct" android:required="true"/>
<uses-feature android:name="android.hardware.faketouch.multitouch.distinct"/>

Does not support

If no uses-feature cases exist in the manifest.

If uses-feature required = "false":

<uses-feature android:name="android.hardware.faketouch" android:required="false"/>
<uses-feature android:name="android.hardware.faketouch.multitouch.distinct" android:required="false"/>

Edge

Whether the app does not use Edge or supports the following Edge modes

Supports Edge Single mode               

If this metadata exists in the binary file manifest:

<meta-data android:name="com.samsung.android.cocktail.mode“ android:value="edge_single"/>

Supports Edge Single + mode                

If this metadata exists in the binary file manifest:

<meta-data android:name="com.samsung.android.cocktail.mode“ android:value="edge_single_plus"/>

Supports Edge Immersive mode   

If this metadata exists in the binary file manifest:

<meta-data android:name="com.samsung.android.cocktail.mode“ android:value="edge_immersion"/>

Supports Edge Feeds mode        

If this metadata exists in the binary file manifest:

<meta-data android:name="com.samsung.android.cocktail.mode“ android:value="edge_feeds"/>

Does not support any Edge mode               

If no metadata is listed in the manifest.
 

Google IAP

Whether the app does or does not support Google IAP

Supports

If this uses-feature exists in the binary file manifest:

<uses-permission android:name="com.android.vending.BILLING"/> 

Does not support

If no instances of meta-data exist in the manifest
 

install_only
_owner

Whether the app does or does not require installation by the owner

Requires   

If this meta-data exists in the binary file manifest:

<meta-data android:name="com.samsung.android.multiuser.install_only_owner" androd value="true"/> 

Does not require

If no instances of meta-data exist in the manifest

 

Galaxy Watch Device Features

Add code to the binary file manifest to indicate user device features that your app requires, can support, or cannot support.

Upon uploading a app binary file, Seller Office determines app compatible devices based on the following:

  • If there are no criteria to determine whether or not a feature is used, the default 'not used' results.
  • If a binary file indicates it uses all features,  only the devices that support those features are recommended.
  • If a binary file indicates it does not use any feature, all devices are recommended.
     
Feature Purpose and binary code that determines feature support

GPS

Whether the app does or does not support GPS geolocation

Supports     

If the following feature is listed in the binary file manifest:

<Feature Name="http://tizen.org/feature/ location.gps"/> 

Does not support

If the above feature is not listed in the manifest.
 

Camera

Whether the app does or does not support the device camera

Supports                 

If the following feature is listed in the binary file manifest:

<Feature Name="http://tizen.org/feature/camera"/> 

Does not support

If the above feature is not listed in the manifest.
 

IrLED

Whether the app does or does not support IR signalling

Supports

If the following feature is listed in the binary file manifest:

<Feature Name="http://developer.samsung.com/tizen/feature/irled"/>

Does not support

If the above feature is not listed in the manifest.
 

Network

Whether the app does or does not support network detection

Supports

If one or more of the following features is listed in the binary file manifest:

<Feature Name="http://tizen.org/feature/network.telephony"/>
<Feature Name="http://tizen.org/feature/network.telephony.mms"/>
<Feature Name="http://tizen.org/feature/network.telephony.sms.cbs"/
<Feature Name="http://tizen.org/feature/network.wifi"/>

Does not support

If none of the above features is listed in the manifest.
 

UV

Whether the app does or does not support UV level monitoring

Supports       

If the following feature is listed in the binary file manifest:

<Feature Name="http://developer.samsung.com/feature/sensor.ultraviolet"/>

Does not support

If the above feature is not listed in the manifest.
 

Airpressure

Whether the app does or does not support air pressure monitoring (altimeter)

Supports

If the following feature is listed in the binary file manifest:

<Feature Name="http://tizen.org/feature/sensor.barometer"/>

Does not support

If the above feature is not listed in the manifest.
 

Magnetic

Whether the app does or does not support magnetic detection (compass)

Supports               

If the following feature is listed in the binary file manifest:

<Feature Name="http://tizen.org/feature/sensor.magnetometer"/>

Does not support

If the above feature is not listed in the manifest.
 

Ambient

Whether the app does or does not support light detection

Supports          

If the following feature is listed in the binary file manifest:

<Feature Name="http://tizen.org/feature/sensor.photometer"/>

Does not support

If the above feature is not listed in the manifest.
 

Heartrate

Whether the app does or does not support the heart rate monitor

Supports:             

If the following feature is listed in the binary file manifest:

<Feature Name="http://developer.samsung.com/tizen/feature/heart_rate_monitor"/>

Does not support

If the above feature is not listed in the manifest.
 

Accelerometer

 

Whether the app does or does not support acceleration detection

Supports           

For web apps (.wgt), if the following feature is listed in the config.xml.

<feature Name="http://tizen.org/feature/sensor.accelerometer"/>

For native apps (.tpk), if the following feature is listed in the tizen-manifest.xml.

<feature Name="http://tizen.org/feature/sensor.accelerometer"/>true</feature>

Gyro Sensor

Whether the app does or does not support gyroscopic detection

Supports        

For web apps (.wgt), if the following feature is listed in the config.xml.

<feature Name="http://tizen.org/feature/sensor.gyroscope"/>

For native apps (.tpk), if the following feature is listed in the tizen-manifest.xml.

<feature Name="http://tizen.org/feature/sensor.gyroscope"/>true</feature>

Fitnessband

Whether the app does or does not support fitness band monitoring

Supports           

For web apps (.wgt), if the following feature is listed in the config.xml.

<feature Name="http://tizen.org/feature/screen.shape.band"/>

For native apps (.tpk), if the following feature is listed in the tizen-manifest.xml.

<feature Name="http://tizen.org/feature/screen.shape.band"/>true</feature>

Galaxy Watch
IAP

Whether the app does or does not integrate Galaxy Watch IAP method calls (in-app items)

Supports           

For web apps (.wgt), if the following feature is listed in the config.xml.

<feature Name="http://tizen.org/privilege/billing"/>

For native apps (.tpk), if the following feature is listed in the tizen-manifest.xml.

<feature Name="http://tizen.org/privilege/billing"/>true</feature>

 

Galaxy Watch Apps and Host App Deeplinks

Add code to the binary file manifest to indicate the binary file is for a Galaxy Watch app, the type of app (standalone or companion, and a companion app's linked host app deeplink.

Feature Purpose and binary code that determines feature support

Tizen Wearable Device
Application

Whether the app does or does not support a Tizen wearable device

Does support a Tizen wearable device   

If both of these uses-permissions and metadata exist in the binary file manifest:

<uses-permission android:name="com.samsung.wmanager.APP"/>
<meta-data android:name=" GearAppType" android:value="wgt”/> 

Does not support a Tizen wearable device

If one or both of the above uses-permissions or metadata do not exist in the manifest.
 

Standalone

 

Whether the app is or is not a standalone Galaxy Watch application

Is a standalone app            

If all of the following apply:

  • The Galaxy Watch IAP feature is not used and is not specified (see above).
  • Galaxy Watch linked (host) deeplink extraction data is not specified (see below).
  • The accessory privilege is not specified:
    Note: This means that your app does not integrate the Remote AppControl API or the SAP API.

    For web apps (.wgt), if the following are not listed in the config.xml.

    <tizen:privilege name="http://developer.samsung.com/tizen/privilege/accessoryprotocol"/ >
    <tizen:privilege name="http://developer.samsung.com/privilege/accessoryprotocol"/>
    

    For native apps (.tpk), if the following is not listed in the tizen-manifest.xml.

    <privilege>http://developer.samsung.com/tizen/privilege/accessoryprotocol</privilege>

     

Is not a standalone app

If one or more of the above do not apply.
 

Companion

Whether the app is or is not a companion Galaxy Watch application

Is a companion app              

If one or more of the following apply:

  • The Galaxy Watch IAP feature is used and specified (see above).
  • Galaxy Watch linked (host) deeplink extraction data is specified (see below).
  • The accessory privilege is specified:
    Note: This means that your app integrates the Remote AppControl API and/or the SAP API.

    For web apps (.wgt), one or both of the following are listed in the config.xml.

    <tizen:privilege name="http://developer.samsung.com/tizen/privilege/accessoryprotocol"/ >
    <tizen:privilege name="http://developer.samsung.com/privilege/accessoryprotocol"/>
    

    For native apps (.tpk), if the following is not listed in the tizen-manifest.xml.

    <privilege>http://developer.samsung.com/tizen/privilege/accessoryprotocol</privilege>

     

Is not a companion app

If none of the above apply.
 

Host Deeplink

 

For companion apps only, the deeplink URL to their host Android app, to be specified in the config.xml (wgt binary) or tizen-manifest.xml (tpk binary) files

In Samsung Galaxy Apps store:

tizen:metadata key="master_app_samsungapps_deeplink" value="[SAMSUNG Galaxy Apps deeplink URL]"/> 


In the Google Playstore:

<tizen:metadata key="master_app_playstore_deeplink" value="[Google Playstore deeplink URL]"/> 

 

In a third-party app store:

<tizen:metadata key="master_app_3rd_url_deeplink" value="[third-party app store deeplink URL]"/> 

 

 

Galaxy Specials Apps Information

If your app uses one or more of the following features, you can select a Galaxy Specials category for your app.

  • If there are no criteria for determining if a feature is used or not used, 'not used' is the default value.

Samsung Developer SDK

Whether the app does or does not use the Samsung IAP SDK

Uses  

If the following uses-permission exists in the manifest.xml:

<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FE ATURE_SURVEY" />

Does not use

If the above uses-permission does not exist in the manifest.

Samsung IAP SDK

Whether the app does or does not use the Samsung IAP SDK

Uses      

If one or more the following uses-permissions exist in the manifest.xml:

<uses-permission android:name="com.sec.android.iap.permission.BILLING"/>
<uses-permission android:name="com.sec.android.app.billing.permission.BILLING"/>
<uses-permission android:name="com.samsung.android.iap.permission.BILLING"/>

Does not use

If the above uses-permissions do not exist in the manifest.

S Pen SDK

Whether the app does or does not use the Samsung S Pen SDK

Uses

If the following uses-feature exists in the manifest.xml:

<uses-feature name="com.sec.feature.spen_usp" android:required="true"/>

Does not use

If the above uses-feature does not exist in the manifest.

Smart Connectivity SDK

Whether the app does or does not use the Smart Connectivity SDK

Uses

If the following metadata exists in the manifest.xml:

<meta-data android:name="SmartConnectivity" android:value="true" />

Does not use

If the above metadata does not exist in the manifest.

PEN.UP SDK

Whether the app does or does not use the PEN.UP SDK

Uses       

If the following metadata exists in the manifest.xml:

<meta-data android:name="PENUP" android:value="true"/>

Does not use

If the above metadata does not exist in the manifest.

 

Additional App Information

If your app uses the following feature, you can select a Galaxy Specials category for your app.

  • If there are no criteria for determining if a feature is used or not used, 'not used' is the default value.

VoIP

Whether the app does or does not support VoIP

Supports VoIP
If one or more of the following exist in the binary file manifest:

<uses-feature android:name="android.software.sip.voip" android:required="true"/>
<uses-feature android:name="android.software.sip.voip"/>
<uses-feature android:name="android.hardware.sip.voip" android:required="true"/>
<uses-feature android:name="android.hardware.sip.voip"/>

Does not support VoIP

If one or more of the following exist in the binary file manifest:

<uses-feature android:name="android.software.sip.voip" android:required="false"/>
<uses-feature android:name="android.hardware.sip.voip" android:required="false"/>

 

 

Seller Office Indications of Supported Device Features

When the following features are specified as supported or required in the Seller Office UI,  and in an app's binary file when indicated, the features are used by the OS to determine which user devices are compatible with the binary file.

Type

Seller Office Field

Default value / recommendations

Binary auto detection
(specified in the binary file manifest file)

Telephony (call/SMS)

Type of devices that are compatible with the binary file with regard to telephony:

No All devices

Yes Only devices with telephony functionality

If not specified, 3G only is disabled.

Binary auto detection
(specified in the binary file manifest file)

NFC

Disabled

Recommended devices:

No All devices are recommended.

Yes Only devices with the function are recommended.

Disabled by default if there is no configuration in the manifest.

Faketouch

Disabled

Recommended devices:

Disable All devices are recommended.

Enable Only devices with Homesync devices are recommended.

If Touchscreen is disabled, Faketouch is enabled.

If there is no configuration in the manifest, ‘Disable’ is set by default.

TouchScreen

Enabled

Type of support:

Enable Devices that do not support Touchscreen are excluded.

Disable Recommended devices are enabled with Faketouch.

If there is no configuration in the manifest, ‘Disable’ is set by default.

Recommended devices:

No All devices are recommended.

Yes Default Only the devices with the function are recommended.

Disabled by default if there is no configuration in the manifest.

Edge

Disabled

Recommended devices:

No All devices are recommended.

Yes Default Only the devices with the function are recommended.

Disabled by default if there is no configuration in the manifest.

Camera, GPS, Network, IrLED, UV, Airpressure, Magnetic, Ambient, Heartrate (Tizen wearables)

Network: 2G/3G/Wi-Fi

Disabled (displayed only for Tizen wearables)

Recommended devices:

No All devices are recommended.

Yes Default Only the devices with the function are recommended.

Disabled by default if there is no configuration in the manifest.

Manual input
(specified in the Seller Office UI)

Resolution(s)
(Android apps)

Device display resolutions supported by the binary file

 

 

For one or more selected resolutions, all corresponding devices are compatible with regard to device display resolution.

Tizen wearable resolutions(s)
(Tizen apps)