Menu

Add internal applications

To add internal applications, complete the following steps:

1. Navigate to Application.

2. On the “Application” page, click Add.

3. In the “Select Application Type” window, select Internal and click OK.

4. On the “Add Application” page, enter the following information:

  • Platform: Select the mobile OS.
  • Application File: Click and select either an APK file for an Android application or an IPA file for an iOS application.
  • Name: Enter the application name.
  • Version: The retrieved application version is displayed. If there is no value, “-“ is displayed.
  • Package Name (Android): The retrieved package name is displayed. If there is no value, “-“ is displayed.
  • Bundle ID (iOS): The retrieved bundle ID for the application is displayed.
  • Bundle Name (iOS): The retrieved bundle name is displayed. If there is no value, “-“ is displayed.
  • URL Scheme (iOS): The retrieved URL scheme is displayed. If there is no value, “-“ is displayed.
  • Platform & Source: The application’s platform and source are displayed.
  • Type: The application type is displayed as “Internal.”
  • Category: Select the application category. If you click Manage Category, you can add or modify application categories.
  • App Wrapper (Android): Reconfigure and save the application so that security policies, such as text copy and screen capture, can be controlled in the Admin Portal.
  • Unassign Option: Check if you want to uninstall the app from the device upon unassignment.
  • Managed App Setting (iOS): Select Yes if you are adding an application that is designed to change the Mobile Device Management (MDM) settings of applications on iOS devices.
  • Key & Value (iOS): If you selected Yes in Managed App Setting, click Add and enter the key and value of a MDM setting you want to change. You can add one key and its value at a time.
NOTE— Ask the application developers about the key and value for the MDM settings. For example, if you want to add the ManagedAppConfig application and set its default URL to http://www.samsungsds.com, the key is the server URL and the value is http://www.samsungsds.com.
  • Description: Enter a description for the application.
  • Icon: Select the application icon image.
  • Screenshot: Select screenshots of the application to provide a preview for Android device users.

5. Click Save & Assign to save the information and proceed to assign the application.

  • Click Save to save the information and return to the application list.

6. Assign the application. For more information, see Assigning internal applications.

App wrapping

Using Knox Manage’s App Wrapper, you can add security policy control functions, such as copy and paste (text only), screen lock, and screen capture, to internal applications. Another advantage of using App Wrapper is that it also allows you to insert code that lets you control security policies for internal applications used by customers and then reconfigure the applications, without having to modify the source code. Thus, you can add new functions in a short amount of time, even if you aren’t knowledgeable in platform development.

Please note the following while using the Knox Manage App Wrapper:

  • Conversion using the Knox Manage App Wrapper is limited to internal applications. There may be copyright issues when converting public applications.
  • The security logic application that checks the signing key may not function normally.

The functions that you can configure using App Wrapper are screen capture, screen lock, copy and paste (text only), and registration of INI configuration files. The existing and wrapped internal applications are distinguished by different icons on the user device.

  • Screen lock: If the Knox Manage agent’s screen is locked because of the Knox Manage agent’s Lock device after (second) value set in Profile, then the wrapped internal applications will also be locked. Therefore, you need to enter the screen lock password and unlock the screen of the Knox Manage agent or the wrapped internal applications if you want to use them.
  • Configuration INI file: You can register a configuration file in wrapped applications and configure additional control settings. Register wrapped applications and an INI configuration file in Profile, and apply them to a device. Then, the INI configuration file is saved to the device’s data storage. For more information about how to register the INI file required for a wrapped application, see Assigning internal applications.

To use the INI file, you need to add the source code to read the INI file from the internal application. For more information, see the next topic.

Reading the configuration file

To use the value of the INI configuration file in internal app, you need to look up the path and file name of the configuration file and add the source that reads the string.

The code that is required to read a configuration file is described below.

private String readINIFile(String fileName) throws

FileNotFoundException, IOException, Exception

{

StringBuffer sb = new StringBuffer();

BufferedReader br = null;

int ch = 0;

br = new BufferedReader(new FileReader(fileName));

while((ch = br.read()) != -1) {

sb.append((char) ch);

}

br.close();

return sb.toString();

}

// Path : /data/data/[packagename]/files/ini

private String getINIFolder(Context context)

{

return context.getFilesDir() + File.separator +

“ini”;

}

// ini File Name : [packagename].ini */

private String getINIFileName(Context context)

{

return context.getPackageName() + “.” + “ini”;

}

  • The getINIFolder function searches for the directory path where the configuration file is saved.
  • The getINIFileName function searches for the name of the {PackageName}.ini file.
  • The readINIFile function reads the configuration file through the file path received as a parameter value, and then sends a text value.

The code that calls the readINIFile() function after determining the existence of the file is as follows:

btnIniRead.setON-CLICKListener(new ON-CLICKListener() {

@Override

public void ON-CLICK(View v) {

String text = null;

String filePath = getINIFolder(mContext) +

File.separator + getINIFileName(mContext);

File file = new File(filePath);

if(file.exists())

{

try {

text = readINIFile(filePath);

} catch (FileNotFoundException e) {

text = “FileNotFoundException”;

e.printStackTrace();

} catch (IOException e) {

text = “IOException”;

e.printStackTrace();

} catch (Exception e) {

text = “Exception”;

e.printStackTrace();

}

}

else

{

text = “File Not Found”;

}

editIniRead.setText(text);

}

)

  • The full path where a configuration file can be saved: getINIFolder(mContext) + File.separator + getINIFileName(mContext)