10 Customizing the Oracle Secure Workspace App

Download the Oracle Secure Workspace app from eDelivery and unzip the package to a local directory. Patches are published on ARU. This app is not available from the Apple or Google app stores.

This chapter contains the following sections:

10.1 Oracle Secure Workspace Customization for iOS

To customize and brand the Oracle Workspace app for your company, use the Enterprise Distribution static library framework Xcode project, which is part of Oracle Mobile Security Suite. The project file name is SecureWorkspace.FIPS.zip or SecureWorkspace.NONFIPS.zip.

You can perform the following customizations on the Oracle Workspace app:

  • Bundle identifier

  • App name

  • App icon

  • Company logo

  • EULA text file

  • Custom config URLs for workspace app

  • Remove support for various document types

  • Enable Apple Data Protection

This section contains the following topics:

10.1.1 Change Bundle Identifier

The bundle identifier (bundle ID) needs to match your provisioning profile. To change the bundle identifier follow these steps:

Note:

To learn about bundle IDs, see "Configuring Your Xcode Project for Distribution," in the App Distribution Guide, which is available from the iOS Developer Library:
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringYourApp/ConfiguringYourApp.html
  1. Open BitzerSecureContainer.xcodeproj in Xcode.

  2. Choose BitzerSecureContainer > Targets > General > Bundle Identifier.

    In versions of Xcode older than Xcode version 6.2, choose Build Settings > General.

  3. Under the Identity section, change the domain part of Bundle Identifier to the domain you want to use.

    The default bundle identifier value is: com.oracle.OracleSecureWorkspace.

    Change this to: com.example.OracleSecureWorkspace, where com.example is your domain.

10.1.2 Change App Name

The default name of the app is Workspace. This is what you will see on iOS springboard. This section describes how to change the default name.

Note: The following steps require the Plistbuddy application to be installed on your Mac.

For English Language Devices

To change the app name on devices that use the English (en) language setting, do the following:

  1. Open the folder where you unzipped the BitzerSecureContainer and BitzerSecureContainer.xcodeproj folders.

  2. Type the following command:

    /usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName YourNewAppName"   BitzerSecureContainer/BitzerSecureContainer.embeddedframework/BitzerSecureContainer.framework/Resources/en.lproj/InfoPlist.strings
    

For All Other Languages

To change the app name for other languages, do the following:

  1. Replace the en.lproj subfolder with the appropriate language subfolder. For example, for French use fr.lproj, for German use de.lproj, for Spanish use es.lproj, and so on.

  2. Type the following command to see all of the language files:

    ls  BitzerSecureContainer/BitzerSecureContainer.embeddedframework/BitzerSecureContainer.framework/Resources/*.lproj/InfoPlist.strings
    
  3. To change the name in all of the language files, type this command:

    for d in `ls  BitzerSecureContainer/BitzerSecureContainer.embeddedframework/BitzerSecureContainer.framework/Resources/*.lproj/InfoPlist.strings`; do   /usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName YourNewAppName" $d ; done
    

10.1.3 Change App Icon, Company Logo and Default Splash Screen

To change the app icon, the company logo, and the default splash screen, replace the icons under the folder:

BitzerSecureContainer/BitzerSecureContainer.embeddedframework/Resources

The icons must have following dimensions:

Table 10-1 Icon Dimensions

Image Name Dimension Description

Icon.png

57 x 57

App Icon

Icon@2x.png

114 x 114

App Icon

Icon-72.png

72 x 72

App Icon

Icon-144.png

144 x 144

App Icon

Icon-Small.png

29 x 29

App Icon

Icon-Small@2x.png

58 x 58

App Icon

Icon-Small-50.png

50 x 50

App Icon

Default.png

320 x 480

iPhone splash screen

Default@2x.png

640 x 960

iPhone splash screen for retina

Default-568h@2x.png

640 x 1136

iPhone 5 splash screen for retina

Default-Portrait~ipad.png

768 x 1004

iPad portrait splash screen

Default-Portriat@x~ipad.png

1536 x 2008

iPad portrait splash screen for retina

Default-Landscape~ipad.png

1024 x 748

iPad landscape splash screen

Default-Landscape@2x~ipad.png

2048 x 1496

iPad landscape splash screen for retina

company-logo.png

200 x 55

Company logo image for iPhone

company-logo@2x.png

400 x 110

Company logo image for iPhone with retina

company-logo~ipad.png

600 x 165

Company logo image for iPad

company-logo@2x~ipad.png

1200 x 330

Company logo image for iPad with retina


10.1.4 Create a EULA File

This section describes how to create and display the end-user license agreement (EULA) on a device.

Note:

Because the EULA applies to the device and not the end-user, it is only displayed once per device the first time a user logs in to the Secure Workspace. This holds true even if Multi-User mode (Shared Workspace mode) is enabled on the device.

To create a file with the end-user license agreement content, name it EULA.txt and add it to this location:

BitzerSecureContainer/BitzerSecureContainer.embeddedframework/BitzerSecureContainer.framework/Resources/en.lproj/EULA.txt

In addition, the SHOW_EULA_SCREEN value should be set to true in the CompanySettings.plist file:

BitzerSecureContainer/BitzerSecureContainer.embeddedframework/BitzerSecureContainer.framework/Resources/Targets/Bitzer/CompanySettings.plist file
 
        <key>SHOW_EULA_SCREEN</key>
        <true/>

10.1.5 Customize Config URLs

Note:

By default, the Secure Workspace app is not configured to connect to any specific MSAS server. The Secure Workspace app can be customized to automatically configure itself to a single MSAS server or present a list of available MSAS servers for the user to select from. Please contact your Oracle Mobile Security Suite server team for Config URL details.

The URLs and help text on the Workspace config screen are customizable. This feature makes it possible to link to custom help files that you develop and host. Follow these steps to customize the URLs and help text on the config screen:

  1. Open BitzerSecureWorkspace.xcodeproj in Xcode.

  2. Open the file: BitzerSecureContainer/BitzerSecureContainer.embeddedframework/Resources/CustomizableSettings.plist

  3. The Config URL settings are under the Root node in an Array type item called CONFIG_URL_SETTINGS. Each item in this array represents a Config URL that will be available for selection on the Config screen. If no items are present for CONFIG_URL_SETTINGS array, a default demo URL and help text is displayed. If one or more items are present under the CONFIG_URL_SETTINGS array, the user is presented with custom URL selection options.

  4. Modify Item 0 under CONFIG_URL_SETTINGS and enter your customized Config URL. The information to enter is described in the following table.

    Table 10-2 CONFIG_URL_SETTINGS

    Property (key) Value Example

    autoconfigure

    Optional setting that is used if there is only one configuration URL.

    true - Automatically select the configuration option and proceed to the login display. The user is not prompted for the configuration URL. This option only works if there is only one option to select. Otherwise, it behaves like the false setting.

    false - Prompt the user to select a configuration option from the list or enter one manually. The user is presented with the Config URL screen and a link appears under the Config URL field.

    Example 1:

    <key>autoconfigure</key>
    <true/>
    

    Example 2:

    <key>autoconfigure</key>
    <false/>
    

    label

    String value that will be displayed instead of the URL. This should be user friendly text that describes your Mobile Security Access Server site. For example, if you have more than one Mobile Security Access Server site you can label them as Houston Site, or BYOD Site.

    <key>label</key>
    <string>Your MSAS Server</string>
    

    value

    The Mobile Security Access Server configuration URL.

    <key>value</key>
    <string>http://example.com/bmax/bmconfig_kinit_kinit.json</string>
    

  5. If more than one MSAS server is available, you can configure the Secure Workspace so that end users can pick which MSAS server to connect to.

    To add more than one Config URL, close Item 0, copy and paste it to create a duplicate item, and edit it. Multiple Config URLs are presented as an action sheet with site labels for each button.

CONFIG_URL_SETTINGS Example

A CONFIG_URL_SETTINGS example is given here.

<key>CONFIG_URL_SETTINGS</key>
<array>
    <dict>
    <key>autoconfigure</key>
    <false/>
    <key>label</key>
    <string>Your MSAS Server name alias</string>
    <key>value</key>
    <string>http://example.com/bmax/bmconfig_kinit_kinit.json</string>
    </dict>
</array>

10.1.6 Customize Password Management

Use this feature to add one or more password management links to the Secure Workspace login dialog, for example Forgot Password and Forgot User ID. Oracle Mobile Security Suite does not provide advanced password management functionality. Rather, this feature provides a placeholder to launch password management links from the Secure Workspace app. Using these links, the user can open a web page where they can create, reset, or recover their password. Each link is opened outside of the Secure Workspace and does not use any of the Secure Workspace security or networking features. Be sure to use unauthenticated links that do not require a login session. Users should be able to use the URLs from Safari (the default browser) without having to authenticate.

Customize the Secure Workspace app by modifying the CustomizableSettings.plist file located here:

BitzerSecureContainer/BitzerSecureContainer.embeddedframework/Resources/CustomizableSettings.plist

Add the PASSWORD_MANAGEMENT key, which specifies the link to the password management site that should be included in the login dialog.

The following notes apply to this property:

  • You can add unlimited entries, however, three entries fills the display in the Secure Workspace login screen. More than three entries is not recommended.

  • Descriptions in multiple languages can be provided using standard language codes.

A PASSWORD_MANAGEMENT example with two entries is shown here.

<key>PASSWORD_MANAGEMENT</key>
<array>
    <dict>
    <key>URL</key>
    <string>http://example.com/NewUser.html </string>
    <key>de</key>
    <string>Passwort vergessen URL</string>
    <key>en</key>
    <string>Forgot Password URL</string>
    <key>fr</key>
    <string>Mot de passe oublié URL</string>
    </dict>
    <dict>
    <key>URL</key>
    <string>http://example.com/PasswordReset.html</string>
    <key>de</key>
    <string>Benutzer-ID vergessen URL</string>
    <key>en</key>
    <string>Forgot User ID URL</string>
    <key>fr</key>
    <string>ID utilisateur Mot URL</string>
    </dict>
</array>

10.1.7 Enable Apple Data Protection

Tip:

Apple Support defines Apple Data Protection as follows:

Apple Data protection is available for devices that offer hardware encryption, including iPhone 3GS and later, all iPad models, and iPod touch (3rd generation and later). Data protection enhances the built-in hardware encryption by protecting the hardware encryption keys with your passcode. This provides an additional layer of protection for your e-mail messages attachments, and third-party applications.

For more information, refer to this Apple Support page:

https://support.apple.com/en-us/HT202064

To enable Apple Data Protection, follow these steps:

  1. Log into the Apple iOS Dev Center under https://developer.apple.com/ and go to Certificate, Identifiers and Profiles.

  2. Go to Identities and select the App ID you want to use with Workspace app.

  3. Edit the App ID and, select Data Protection, then select Protected Unless open under Sharing and Permissions.

  4. Regenerate your provisioning profile and use that profile for signing the workspace app.

10.1.8 Remove Document Types

The Workspace app enables you to open the following documents types:

  • Word: docx and doc

  • Powerpoint: pptx and ppt

  • Excel: xlsx and xls

  • Text: txt, rtf

  • Adobe pdf

  • Images: jpg, jpeg, png, tif, tiff, bmp, gif

  • Videos: mov

To remove support for any or all of these file types (that is, to prevent the Workspace app from opening them) you must remove the document types from BitzerSecureWorkspace.xcodeproj and rebuild the Workspace app. Follow these steps:

10.1.8.1 Removing the Document Types from BitzerSecureWorkspace.xcodeproj

  1. Open BitzerSecureContainer.xcodeproj in Xcode.

  2. Select the Info tab and scroll down to Document Types section.

  3. Remove the document types: Bitzer MS Reader, Bitzer Document Editor, Bitzer PDF Reader and Bitzer Image Viewer. Do not remove any other documents types.

10.1.8.2 Rebuilding the Workspace

To rebuild the Workspace app after making changes, follow these steps:

  1. Make sure the bundle identifier has been updated to match your provisioning profile

  2. Ensure the correct provisioning profile has been selected under Build Settings > Code Signing.

  3. Ensure the correct code signing identity has been selected under Build Settings > Code Signing.

  4. Select iOS Device from Product > Destination. The Workspace app can only be built for iOS Device.

  5. Select Product from the menu and then select Archive.

  6. In the Organizer - Archives window click Export.

  7. In the Select the method for export window, select Save for Enterprise or Ad Hoc Deployment and click Next.

  8. Select Provisioning Profile and click Choose.

  9. Select Export from the Summary window.

  10. Save the app without selecting Save for Enterprise Distribution. This generates a signed IPA for the Workspace app.

Once the Workspace app ipa file is generated, you can upload it to your Catalog on the Mobile Security Manager console or to your enterprise app store.

10.1.8.3 Certificate and Provisioning Profile Requirements

Workspace app and containerized apps must be signed using provisioning profiles that have same App ID Prefix. Containerized apps will not work in the Workspace if they have a different App ID Prefix.

10.2 Oracle Secure Workspace Customization for Android

The Secure Workspace unsigned APK that is part of Oracle Mobile Security Suite can be used for customization and branding. You can perform the following customizations:

  • App package name

  • App name

  • App icon

  • Splash screen

  • EULA text file

  • Custom config URLs for workspace app

  • Remove support for various document types

This section contains the following topics:

10.2.1 Extracting APK for Customization

Before you can customize or make any changes for branding, you must extract the APK. Ensure that the Oracle Mobile Security App Containerization Tool has been installed, then run the following command to extract the APK.

build-apk.sh extract SecureWorkspace-unsigned-xxxx.apk
 

10.2.2 Change App Package Name

The package name serves as a unique identifier for the application. You may want to customize this value to gain additional control of the app upgrade process or for security reasons. Because the package name defines your application's identity, if you change it after it has been deployed, the new app will be considered to be a different application and users of the previous version will not be able to update to the new version. For more information see:

http://developer.android.com/guide/topics/manifest/manifest-element.html

To change the package name for a Secure Workspace app, follow these steps:

  1. Go to the folder where the APK was extracted.

  2. Edit file AndroidManifest.xml.

  3. On the second line of the file, modify the attribute package to the package name you want. For example:

    <manifest android:versionCode="1" android:versionName="@string/version_name" package="com.acme.secureworkspace" xmlns:android="http://schemas.android.com/apk/res/android">
    
  4. Save the file.

10.2.3 Change App Name

To change name of a Secure Workspace app follow these steps:

  1. Go to the folder where the APK was extracted.

  2. Edit the file res/values/strings.xml.

  3. Modify the value for the string name app_name. For example:

    <string name="app_name">My Workspace</string>
    
  4. Save the file.

10.2.4 Change App Icon

To change the icon of a Secure Workspace app, follow these steps:

  1. Go to the folder where the APK was extracted.

  2. Under the res folder, there are several folders with names like drawable-xxxx. Each of these folder contains a file, icon.png, that is sized at 128 x 128 px. Replace each icon.png file with your own icon. Make sure the resolutions match.

    The icons must go in the folders listed in Table 10-3:

    Table 10-3 Icon Locations

    icon.png (App icon) splashscreen.png Folder (under res/)

    128x128

    N/A

    drawable

    128x128

    480x800

    drawable-hdpi

    128x128

    800x480

    drawable-land-hdpi

    128x128

    800x480

    drawable-land-ldpi

    128x128

    800x480

    drawable-land-mdpi

    128x128

    1024x768

    drawable-land-xhdpi

    128x128

    480x800

    drawable-ldpi

    128x128

    480x800

    drawable-mdpi

    128x128

    768x1024

    drawable-xhdpi

    128x128

    N/A

    drawable-xlarge-hdpi

    128x128

    N/A

    drawable-xxhdpi


For more information about resolution and size of images to be placed in the respective drawable folders, see "Supporting Multiple Screens" at http://developer.android.com

10.2.5 Change Splash Screen Image

To Change the splash screen image, follow these steps:

  1. Go to folder where the APK was extracted.

  2. Under the res folder, there are several folders with names like drawable-xxxx. Each of these folder contains a file, splashscreen.png, with a specific resolution. Replace each splashscreen.png file with your own icon. Make sure the resolutions match.

10.2.6 Change MDM Agent Settings

To change the MDM Agent settings, which include the display-name label value and description value, follow these steps:

  1. Go to the folder where the APK was extracted.

  2. Open the file res/values/strings.xml for editing.

  3. Locate msm_device_admin_label and msm_device_admin_description and modify the values as needed. For example:

    <string name="msm_device_admin_label">My Device Administrator</string>
    <string name="msm_device_admin_description">Lets you securely manage your device</string>
    

    If translated versions of msm_device_admin_label and msm_device_admin_description exist, update them in the corresponding strings.xml file under res/values-<language_code>-<region_code>/strings.xml. If translated versions are not available, then the translated versions of the default values should be removed from those files.

  4. Save the file.

10.2.7 Create a EULA File

This section describes how to create and display the end-user license agreement (EULA) on a device.

Note:

Because the EULA applies to the device and not the end-user, it is only displayed once per device the first time a user logs in to the Secure Workspace. This holds true even if Multi-User mode (Shared Workspace mode) is enabled on the device.

To create a file with the end-user license agreement content, follow these steps:

  1. Go to the folder where the APK was extracted.

  2. Create the file assets/EULA-en with the EULA text contents.

  3. Create the file assets/EULA-<locale> with EULA text using language specific to that locale. For example, for French the file would be assets/EULA-fr.

  4. Save the EULA files.

If the device locale does not match the locale specified in a EULA file, the device will default to the EULA-en version.

10.2.8 Customize Config URLs

This feature makes it possible to link to custom help files that you develop and host. Follow these steps to customize the default config URLs and help text:

  1. Go to the folder where the APK was extracted.

  2. Edit the file assets/prop.txt. See Section 10.2.10 for a sample prop.txt file.

  3. Add config URLs under "--- Choose config urls from List ---". URLs must be comma separated and each URL must be enclosed within double quotes. For example:

    "properties":
       {
          "autoConfigure": "false",
          "configURLs":
          [
             "--- Choose config urls from List ---",
                     "https://omss1.acme.com/bmax/bmax_config.json"
                    ,"https://omss2.acme.com/bmax/bmax_config.json"
          ]
       }
    
  4. When a single config URL is specified, then autoConfigure can be used. If autoConfigure is set to true, you are not prompted to select a config URL. Instead, the specified URL is selected for auto configuration.

    The following table describes the config_url configuration properties and values:

    Table 10-4 Settings and values for prop.txt

    Property Value Example

    autoConfigure

    false - Prompt the user to select a configuration option from the list or enter one manually.

    true - Automatically select the configuration option and proceed to the login display. This option only works if there is only one option to select. Otherwise, it behaves like the false setting.

    Example 1:

    "autoConfigure": "false"
    

    Example 2:

    "autoConfigure": "true"
    

    config_urls

    url - URL for configuring the Secure Workspace client.

    en - English language description of the above URL.

    Additional descriptions in other languages can be included using standard language codes.

    "en":"Your Config URL ",
                                    "url":"https://bmax6.example.com/bmax/bmconfig_kinit_kinit.json"       
    

  5. Save the file prop.txt.

10.2.9 Customize Password Management

Use this feature to add one or more password management links to the Secure Workspace login dialog, for example Forgot Password and Forgot User ID. Oracle Mobile Security Suite does not provide advanced password management functionality. Rather, this feature provides a placeholder to launch password management links from the Secure Workspace app. Using these links, the user can open a web page where they can create, reset, or recover their password. Each link is opened outside of the Secure Workspace and does not use any of the Secure Workspace security or networking features. Be sure to use unauthenticated links that do not require a login session. Users should be able to use the URLs from the default browser without having to authenticate.

Customize the Secure Workspace app by modifying the prop.txt file located in the AndroidContainer/assets folder. See Section 10.2.10 for a sample prop.txt file.

The prop.txt file supports localization. For password_management, supply localized, non-English strings using standard two character language codes. Strings are displayed based on the device language setting the language identifier. If the device language is not present for the desired option, the English language string is displayed.

The following table describes the password_management configuration properties and values:

Table 10-5 Settings and values for prop.txt

Property Value Example

password_managment

url - URL that opens the password management web site.

en - English language description of the above URL.

Additional descriptions in other languages can be included using standard language codes.

Note - You can add unlimited entries, however, three entries fills the display in the Secure Workspace login screen. More than three entries is not recommended.

 "en":"Your Password Reset site ",
                                "url":"https://example.com/password_reset.html "         

10.2.10 Sample prop.txt File

A sample prop.txt file is shown here:

{
  "properties":
    {
    "autoConfigure": "false",
    "config_urls": 
    [
      {
      "en":"Your KINIT Server Config",
      "fr":"Votre KINIT Server Config",
      "de":"Ihr KINIT Server Config",
      "url":”https://example.com/bmax/bmconfig_kinit_kinit.json”
      },
      {
      "en":"Your PKINIT Server Config",
      "fr":"Votre PKINIT Server Config",
      "de":"Ihr PKINIT Server Config",
      "url":”https://example.com/bmax/bmconfig_pkinit_tlp.json”
      }
    ],
    "password_managment":
    [
      {
      "en":"Your Registration URL",
      "fr":"Votre Registration URL",
      "de":"Ihr Registration URL",
      "url":"http://example.com/NewUser.html"
      },
      {
      "en":"Your Password Reset URL",
      "fr":"Votre Password Reset URL",
      "de":"Ihr Password Reset URL",
      "url":"http://example.com/PasswordReset.html"
      }
    ],
    "exitOnLogin": "false", 
    }
}

10.2.11 Enable Kiosk Mode

When Kiosk Mode is enabled, users only see the Workspace and the apps within the Workspace. Interaction with the operating system outside the Workspace is minimized. The user cannot close the Secure Workspace app, making this mode suitable for public environments where supervision is minimal, such as lobbies, exhibit spaces, and show rooms.

  1. To enable Kiosk Mode, customize the Secure Workspace app by modifying the prop.txt file located in the AndroidContainer/assets folder. See Section 10.2.10 for a sample prop.txt file. Modify the file as follows:

    If the "appMode":"workspace", line is present, change it to: "appMode":"launcher",

    Otherwise, after

    "exitOnLogin": "false",
    

    add the following line:

    "appMode":"launcher",
    

    This change enables a proprietary Oracle launcher, not the Google Now launcher.

  2. Save your changes.

  3. Create a Kiosk Mode mobile security policy.

    Edit the mobile security policy's Workspace policy and set the Shared Workspace Mode setting to Multi-User. This is a required setting that wipes away Workspace data every time a user logs out of the Workspace. Assign the policy to a role in LDAP that has users who can only access corporate data using the Kiosk mode.

10.2.12 Remove Document Types

To prevent the Workspace app from opening certain file types follow these steps:

  1. Go to the folder where the APK was extracted.

  2. Edit file AndroidManifest.xml.

  3. Search for the data element in intent-filter that matches the mimeType or path pattern for the file type you want to prevent from opening in Workspace app.

  4. Delete the data element.

  5. Save AndroidManifest.xml.

10.2.13 Packaging Customized APK

To package the customized APK content into an APK, follow these steps:

  1. Verify that the Oracle Mobile Security App Containerization Tool has been installed.

  2. Go to the folder where the APK was extracted.

  3. Run the following command:

build-apk.sh package <Secure_Workspace_apk_folder> <new_output_apk> <original_apk> 

Secure_Workspace_apk_folder is where the APK was extracted using the extract command.

10.2.14 Signing APK

To sign an APK, use the c14n -c signonly command. For example:

c14n -c signonly -i input.apk -o output.apk -keystore release-key.keystore -storepass password -storealias release -v

For more information on signing Android apps, see "Signing Your Applications" at: http://developer.android.com

10.2.15 Signing Certificate Requirements

Workspace app and containerized apps must be signed using the same certificate. Containerized apps will not work with Workspace if they are signed with a different certificate.

For more information on signing Android apps, see "Signing Your Applications" at http://developer.android.com