EHS 特殊功能

企业主页屏幕 2.8

概述

本指南涵盖高级 EHS 功能,如 Kiosk 模式和安全模式。其中假定具备企业主页屏幕的工作知识,并且通过直接操作 enterprisehomescreen.xml 配置文件使用其高级设置。对于不熟悉这些程序的人员,请先参阅关于设置页面以及高级设置指南再继续。

注意:EHS 的许多功能都可在设备上手动实现,以编程方式通过 EMDK 实现,或使用 StageNow 或第三方移动设备管理 (MDM) 系统(如果受该 MDM 系统支持)远程实现。EHS 只是将功能置于单个工具中。

Kiosk 模式

Kiosk 模式专为运行单一应用程序且通常带有触控式 UI 的设备设计。例如零售价格检查器、汽车零件查询以及患者住院登记系统等等。在向单个用户和/或任务分配专用设备(例如零售店员的手持式条码扫描器)时,Kiosk 模式也十分有用。Kiosk 模式将应用程序置于全屏模式下,防止通过将这些按键映射至 Kiosk 应用程序的最近活动,将 BACK 和 HOME 用于退出应用程序。

另请参阅 EHS 自动启动功能,此功能在不更改 HOME 键和 BACK 键功能的情况下,提供与 Kiosk 模式类似的功能。

Android 平台备注:
  • 在运行 Android 5.x Lollipop 的设备上,不应将 Kiosk 模式与屏幕固定功能(Android L 和更高版本系统中提供类似功能的功能)结合使用。
  • 在运行 Android 4.4 KitKat 的设备中,当以 Kiosk 模式启动设备时,屏幕仍会显示“请稍候”提示。按下 HOME 键,启动 Kiosk 应用程序并恢复正常行为。
Kiosk 模式标签:

<kiosk> - 指定启用 Kiosk 模式时将运行的应用程序

<kiosk_mode_enabled> - 打开和关闭功能

启用 Kiosk 模式

enterprisehomescreen.xml 文件中:

  1. 在配置文件的 <kiosk> 部分中指定 Kiosk 应用程序。
  2. 在文件“首选项”部分的 <kiosk_mode_enabled> 标签中,输入值“1”。
  3. 如果需要在 Kiosk 模式下进行 USB 调试,请在 <usb_debugging_disabled> 标签中输入值“0”。
    (请参阅下方的禁用 Kiosk 模式,了解详细信息)。

安全备注:使用 Kiosk 模式时,一定要禁用“按键重映射”和其他可能启动应用程序的方式,因为这样会破坏 Kiosk 模式的保护。

禁用 Kiosk 模式

一旦启用 Kiosk 模式,仅可以通过以下两种方法中的一种禁用(无需编写自定义程序代码):

  • 如果未禁用用户模式的 USB 调试,可以通过在设备配置文件 <kiosk_mode_enabled> 标签中输入值“0”,禁用 Kiosk 模式。

  • 如果已禁用用户模式的 USB 调试,请执行恢复出厂设置。

以编程方式控制 Kiosk 模式

使用 Android Intent,可以从 Android 应用程序内部控制 Kiosk 模式。下列 JavaScript 代码显示了如何以编程方式启用和禁用 Kiosk 模式:

//Disable Kiosk Mode: Intent intent = new Intent("com.symbol.enterprisehomescreen.actions.MODIFY_KIOSK_MODE"); Intent.putExtra("enable",false); sendBroadcast(intent); //Enable Kiosk Mode: Intent intent = new Intent("com.symbol.enterprisehomescreen.actions.MODIFY_KIOSK_MODE"); Intent.putExtra("enable",true); sendBroadcast(intent);

安全备注:使用 Kiosk 模式时,一定要禁用“按键重映射”和其他可能启动应用程序的方式,因为这样会破坏 Kiosk 模式的保护。


安全模式

在安全模式下,EHS 将只接受签名的 EHS 配置文件,从而防止对文件进行任何未经授权的更改。要在安全模式下运行,EHS 需要设备上存在签名的配置文件 (enterprisehomescreen.xml) 和匹配的签名文件 (enterprisehomescreen.pem)。

未在安全模式下运行的设备,便会根据默认设置,在正常模式下运行。在正常模式下运行时,EHS 将接受未签名的配置文件并在其中执行任何配置设置,只要该名称的文件及其内容符合 EHS 规格即可。

启用安全模式

这些说明要求使用 Android Debug Bridge (ADB) 与设备通信并且使用 OpenSSL Windows 版创建设备证书和私钥文件。如有必要,请先安装 ADB 和 OpenSSL 再继续。

重要说明:为在 EHS 中启用安全模式,Android N(及更高版本)中不再支持手动文件推送来安装设备根证书。要为设备部署证书,以启用安全模式,需要使用 Zebra StageNow 中的 Certificate Manager 设置类型或 EMDK Profile Manager 中的 Certificate Manager CSP。

1.使用下列 OpenSSL 命令,创建设备根证书 (caroot.pem) 和私钥 (privatekey.pem):

C:\OpenSSL-Win32\bin\openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privatekey.pem -out caroot.pem


2.使用文本编辑器,创建 certificate.xml 文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?><certificate><install><source>/sdcard/caroot.pem</source><alias>CARootCert1</alias></install></certificate>

3.将 caroot.pem 复制到设备上的 SD 卡

4.使用 Android 文件浏览器或下列命令 ADB,将 certificate.xml 推送至设备:

adb push certificate.xml /enterprise/device/settings/mdm/autoimport/

这将导致在设备上安装根证书(注意:运行 Android N 的设备不支持手动推送)。

5.要确认安装,请使用下列命令拉取 Results.xml 文件

adb pull /enterprise/device/settings/mdm/autoimport/Results.xml.

6.按照高级设置部分的说明,创建 EHS 配置文件 (enterprisehomescreen.xml)。

7.使用下列 OpenSSL 命令签署配置文件

C:\OpenSSL-Win32\bin\openssl dgst -sign privatekey.pem -out enterprisehomescreen.pem enterprisehomescreen.xml

如果成功,签署 enterprisehomescreen.xml 文件的进程将生成名为 enterprisehomescreen.pem 的签名文件。

重要说明:务必使用与用于生成根证书相同的 OpenSSL 签署配置文件版本。

8.推送签名的配置和签名文件/enterprise/usr 文件夹。

9.根据设置指南中的说明,安装并运行 EHS .apk

启动时,EHS 将尝试将配置和签名文件与设备证书匹配。如果成功,EHS 将进入安全模式并实施签名的配置文件中的设置。

要确认,可在管理员模式下在“首选项”面板中查看当前操作模式。下面的图像显示安全模式“关”:

如果匹配不成功,设备将进入锁定状态(见下文)。

注意:当 EHS 进入安全模式时,配置和签名文件将从 /enterprise/usr 文件夹移动到安全位置。要在安全模式下从设备检索配置文件,请在管理员模式下使用“工具”菜单下提供的导出配置文件选项。


禁用安全模式

将设备恢复到正常模式的第一步是禁用安全模式。这需要从设备删除 EHS 并且必须由管理员执行。

要从以安全模式运行的设备删除 EHS:

  • 进入管理员模式并卸载 EHS,或
  • 执行企业重置(请参阅设备手册,了解详细信息)。

安全模式 EHS 删除后,请遵循 EHS 设置指南,进行正常安装。


锁定状态

如果签名的配置文件 (enterprisehomescreen.xml) 及其匹配的签名文件 (enterprisehomescreen.pem) 无法通过设备上安装的对应证书验证,在安全模式下运行的设备将进入锁定状态。当进入此状态后,设备会显示与下图类似的屏幕,并附带锁定的原因。


从锁定状态中恢复

有两种方法可以从锁定状态中恢复并使设备恢复到安全模式操作:

方法 1:替换签名文件

将有效的 EHS 配置和签名文件复制到设备中的 /enterprise/usr 目录。这将使得 EHS 退出锁定状态、导入配置文件并恢复至安全模式。可通过 ADB 手动复制或使用 MDM 部署有效文件。

方法 2:删除签名文件

登录到管理员模式,然后从 /enterprise/usr 目录删除签名文件。这将使得 EHS 退出锁定状态并进入安全模式。此方法仅在 EHS 已在安全模式下运行的情况下才有效。如果 EHS 之前在正常模式下运行,并且由于尝试切换到安全模式未成功而进入锁定状态,EHS 将在签名文件删除后恢复到正常模式。

注意:无论是在正常还是安全模式下运行,尝试管理员登录失败次数最多达到 10 次(或 EHS 配置文件中指定的次数),将禁用管理员模式登录。要退出此状态,请将有效配置文件复制(如果之前在安全模式下运行,还需复制其匹配的签名文件)到设备或通过 MDM 远程删除现有签名文件


EHS 日志

EHS 在 /enterprise/usr/enterprisehomescreen.log 文件中记录所有主要活动、故障和安全事件。这些包括进入管理员模式、操作模式切换的失败尝试以及所有 EHS 错误。日志是纯文本文件,可以使用 ADB 或 MDM 进行检索并使用任何文本编辑器查看。

有关日志记录的更多信息,请参阅日志记录首选项

在 EHS 2.8 和更高版本中,可以通过 UI 或配置文件禁用日志记录。


EHS 文件交互

EHS 如何响应文件操作

当前模式

操作

结果

恢复

正常模式

将新的 enterprisehomescreen.xml 文件复制到 /enterprise/usr 文件夹中

新配置生效;设备保持为正常模式。

正常模式

复制无效的 PEM 文件(即 PEM 文件与 /enterprise/usr 文件夹中的 XML 文件不匹配)

“锁定模式”屏幕立即出现

远程或通过本地管理员登录,删除 /enterprise/usr 文件夹中的 PEM 文件。设备继续在正常模式下使用现有配置。

正常模式

依次将新的 XML 文件及其对应的 PEM 文件复制到 /enterprise/usr 文件夹

一旦检测到了 XML 文件,新配置便会在正常模式下生效。

当已复制 PEM 文件时:

签名验证成功:设备进入安全模式。

签名验证失败:“锁定模式”屏幕立即出现并显示错误。

正常模式

依次将新的 PEM 文件及其对应的 XML 文件复制到 /enterprise/usr 文件夹

一旦已复制 PEM 文件,设备就将进入锁定状态。一旦已复制相关的 XML 文件,锁定屏幕将消失,设备将进入安全模式且新配置生效。

警告:建议的顺序是先复制 XML 文件,再复制 PEM 文件。

当前模式

操作

结果

恢复

安全模式

将新的 XML 文件复制到 /enterprise/usr 文件夹中

由于尚未复制相关 PEM 文件,因此新配置未生效。因此,设备仍处于安全模式先前的配置下。

注意:在这种情况下,设备不会进入锁定状态

安全模式

将新的 XML 文件和对应的 PEM 文件复制到 /enterprise/usr 文件夹

签名验证成功:设备仍处于安全模式中。新配置生效。

签名验证失败:新配置未生效且设备进入锁定状态。

远程或通过本地管理员登录,删除 /enterprise/usr 文件夹中的 XML 文件和 PEM 文件。设备将继续处于安全模式,并使用先前的配置。

安全模式

仅将 PEM 文件复制到 /enterprise/usr 文件夹中

锁定屏幕立即出现

选项 1:通过远程或以管理员身份登录设备,复制 XML 文件(与 PEM 文件相对应的文件)。锁定屏幕将立即消失,且新配置也将生效。

选项 2:删除 /enterprise/usr 文件夹中的 PEM 文件:锁定屏幕将立即消失,且设备将保留先前的配置。

当前状态

操作

结果

锁定状态

以管理员身份登录设备,并通过设备中的文件浏览器复制新的 XML 文件和相应的 PEM 文件。

签名验证成功:设备进入安全模式,且新配置生效。

签名验证失败:显示锁定屏幕。新配置未生效。

锁定状态

远程复制新的 XML 文件和对应的 PEM 文件。

签名验证成功:锁定屏幕消失,设备进入安全模式,新配置生效。

签名验证失败:锁定屏幕仍然存在,新配置未生效。

锁定状态

远程或通过本地管理员登录,删除 /enterprise/usr 文件夹中的 PEM 文件。

如果设备之前处于安全模式:锁定屏幕消失,设备继续在安全模式下,并使用之前的配置。

如果设备之前处于正常模式:锁定屏幕消失,设备继续在正常模式下,并使用之前的配置。

锁定状态

请勿更改 /enterprise/usr 文件夹中的任何文件。卸载并重新安装 EHS。

EHS 启动时,将显示锁定屏幕。

锁定状态

删除 /enterprise/usr 文件夹中的 XML 文件和 PEM 文件。然后卸载并重新安装 EHS。

EHS 在正常模式下启动


安全备注

本部分涵盖了 EHS 和 Android 功能之间可能影响设备安全或应用程序行为的重要交互。

最近应用程序列表

  • 如果从最近应用程序列表访问某个应用程序,可能会带来安全隐患;未从列表中清除的应用程序可通过后退按钮激活,从而可能暴露非 EHS 主页屏幕。
  • 在 Android Nougat 设备上,“最近应用程序”按钮可启用/禁用。它默认为禁用状态,以防止使用多窗口模式。
  • EHS 不会向 Android 最近应用程序列表中添加应用程序或活动,但在 EHS 内部启动的应用程序/活动则可能。此类应用程序/活动可能会启动最近应用程序列表中的其他应用程序,并带来安全风险。
  • 重新启动设备,可以清除 Android L 之前设备上的最近应用程序列表。
  • Android L 设备重新启动后,会保留最近应用程序列表。可通过 EMDK、StageNow 或第三方 MDM 系统,使用 App Manager 清除列表。
  • 要手动清除最近应用程序,请长按“主页”或“菜单”按钮(取决于设备),直到显示最近应用程序列表,然后再滑动屏幕,清除每个应用程序。

EHS 和 MX 多用户

  • 如果将 EHS 与 Zebra MX 多用户功能结合使用,禁用 EHS 锁屏功能便很重要。如果不这样做,会导致 MX 多用户登录屏幕无法显示。请参阅绕过锁屏标签,获取设置说明。
  • MX 多用户能够无视 EHS 强加的系统设置访问限制。用户以 MX 管理员身份登录,便可以随时完全访问系统设置。默认情况下,MX 非管理员用户只能访问“声音”、“显示”和“关于”屏幕。

其他无意访问

  • 在运行 Android 4.4 KitKat 的设备上,用户可以通过“通知”下拉菜单中的“快速设置”菜单,访问飞行模式、Wi-Fi、蓝牙和其他设备设置。这可以通过禁用状态栏设置标签防止。
  • 通过这些 MX 模块,还可以单独禁用无线功能:
    • SettingsMgr 适用于飞行模式和 Wi-Fi
    • UiMgr 适用于快速设置和“齿轮”图标
    • WirelessMgr 适用于蓝牙、GPS、NFC 和 WWAN
  • 使用 EMDK 或 StageNow 工具可以访问 MX 模块。
  • 在用户模式下捕捉屏幕截图(同时按下“音量下调”和“电源”按钮),会向用户显示图片库应用程序或用于共享图片的应用程序,如 Gmail 和 MMS。要防止发生此类情况,请在可选功能标签部分的“禁用/启用应用程序”部分,禁用此类不需要的应用程序。
  • 如果使用 Android 系统设置面板上的可编程按键功能,预设一个启动应用程序的按键,那么该按键映射便在用户模式下可用。

安装 OpenSSL

在 Windows PC 上安装 OpenSSL 工具:

1.为 Windows 用户下载 OpenSSL 1.0.1g 或更高版本

2.在与目标设备连接的计算机上安装 OpenSSL。

3.如果在安装过程中出现 Visual C++ 2008 警告,请忽略并完成安装。

4.在命令提示符处,导航至 OpenSSL 安装文件夹 (c:\OpenSSL-Win32\ by default)

5.通过执行以下命令,设置 OpenSSL 配置环境变量:

C:\OpenSSL-Win32\ Set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg

OpenSSL 现可用于签署 EHS 文件。