README_zh.md

DLP

介绍

本示例是一个安全类App,使用@ohos.dlpPermission 接口展示了在eTS中常用接口的调用。

效果预览

Index
Index

使用说明: 1.启动后点击文件图标,选择一个文件 2.点击对应文字按钮,完成对应的接口调用(具体接口说明可以参考https://gitcode.com/openharmony/docs/blob/master/zh-cn/application-dev/security/DataProtectionKit/dlp-guidelines.md)

工程目录

entry/src/main/ets/
|---component
|   |---CustomDialog.ets                        // 权限弹窗
|---feature
|   |---DlpManager.ets                          // Dlp管理
|   |---FileManager.ets                         // 文件管理
|   |---PreferencesManager.ets                  // 持久化存储
|---pages
|   |---Index.ets                               // 首页
|---util
|   |---Logger.ts                               // 日志
|   |---ResourceUtils.ets                       // 资源转换

相关权限

允许文件管理类应用通过FAF框架访问公共数据文件:ohos.permission.FILE_ACCESS_MANAGER

允许应用调用storage manager服务中对空间统计以及卷信息的查询接口:ohos.permission.STORAGE_MANAGER

允许查询应用的基本信息和敏感信息:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

允许对DLP文件进行权限配置和管理:ohos.permission.ACCESS_DLP_FILE

允许应用管理系统分布式帐号信息:ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS

允许应用管理系统本地帐号:ohos.permission.MANAGE_LOCAL_ACCOUNTS

允许应用查询系统本地帐号信息:ohos.permission.GET_LOCAL_ACCOUNTS

允许MDM应用识别文件敏感内容:ohos.permission.ENTERPRISE_DATA_IDENTIFY_FILE

依赖

需要依赖三方应用文本编辑FileEdit的hap

约束与限制

  1. 本示例仅支持标准系统上运行。
  2. 本示例可在API21及其以上版本的full SDK上运行。
  3. 本示例需要使用@ohos.dlpPermission系统权限的系统接口。
  4. 需要链接DLP凭据服务器。

samples代码运行及其环境配置

1.在".\DLP\entry\src\main"下新增syscap.json文件,文件内容为:

{
  "devices": {
    "general": [
      "default",
      "tablet"
    ]
  },
  "development": {
    "addedSysCaps": [
      "SystemCapability.ArkUI.ArkUI.Circle"
    ]
  }
}

2.配置build-profile.json5 (.\DLP\build-profile.json5)

"products": [
   {
     "name": "default",
     "signingConfig": "default",
     "compileSdkVersion": 21,
     "compatibleSdkVersion": 21,
     "runtimeOS": "OpenHarmony",
   }
],

           若出现sync failed,可以尝试点击Migrate Assistant
Index
3.执行Build Hap(s),顺利编译后,产生entry-default-unsigned.hap;
4.添加签名
(1)装一个假应用 (在DLP目录下新建假应用,该应用的所有配置均默认)
Index
(2)点击运行,将假应用烧录到开发板中,删除假应用代码
Index
如果运行报错no signature file,请配置在线签名,然后再点击运行
Index
(3)在cmd中输入如下指令,获取DLP samples应用指纹
           hdc shell "bm dump -n com.samples.dlp | grep finger"
(4)拉出配置文件install_list_capability.json(该文件在打开cmd的目录下)
           hdc file recv /system/etc/app/install_list_capability.json
(5)打开install_list_capability.json文件,将DLP samples应用设置为系统应用,文件最下面添加(可以直接复制其它应用的配置,再改DLP samples应用指纹(app_signature)和包名(bundleName))

{
  {
	{
    	"bundleName": "com.sample.dlp",
        "app_signature": {
        	"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
        },
        "allowAppUsePrivilageExtension": true,
        "allowAppDesktopIconHide":true
	}
  }
}

(6)推送配置文件(在install_list_capability.json所在目录打开cmd)
           hdc file send install_list_capability.json /system/etc/app/
           hdc shell reboot
(7)下载签名工具(clone下来) https://gitcode.com/openharmony/developtools_hapsigner
(8)在下载好的文件夹中,修改文件 .\developtools_hapsigner-master\dist\UnsgnedReleasedProfileTemplate.json
           修改如下所示

{
    "version-name": "2.0.0",
    "version-code": 2,
    "app-distribution-type": "os_integration",
    "uuid": "5027b99e-5f9e-465d-9508-a9e0134ffe18",
    "validity": {
        "not-before": 1594865258,
        "not-after": 1689473258
    },
    "type": "release",
    "bundle-info": {
        "developer-id": "OpenHarmony",
        "distribution-certificate": "-----BEGIN CERTIFICATE-----\nMIICMzCCAbegAwIBAgIEaOC/zDAMBggqhkjOPQQDAwUAMGMxCzAJBgNVBAYTAkNO\nMRQwEgYDVQQKEwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkgVGVh\nbTEjMCEGA1UEAxMaT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gQ0EwHhcNMjEwMjAy\nMTIxOTMxWhcNNDkxMjMxMTIxOTMxWjBoMQswCQYDVQQGEwJDTjEUMBIGA1UEChML\nT3Blbkhhcm1vbnkxGTAXBgNVBAsTEE9wZW5IYXJtb255IFRlYW0xKDAmBgNVBAMT\nH09wZW5IYXJtb255IEFwcGxpY2F0aW9uIFJlbGVhc2UwWTATBgcqhkjOPQIBBggq\nhkjOPQMBBwNCAATbYOCQQpW5fdkYHN45v0X3AHax12jPBdEDosFRIZ1eXmxOYzSG\nJwMfsHhUU90E8lI0TXYZnNmgM1sovubeQqATo1IwUDAfBgNVHSMEGDAWgBTbhrci\nFtULoUu33SV7ufEFfaItRzAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0OBBYEFPtxruhl\ncRBQsJdwcZqLu9oNUVgaMAwGCCqGSM49BAMDBQADaAAwZQIxAJta0PQ2p4DIu/ps\nLMdLCDgQ5UH1l0B4PGhBlMgdi2zf8nk9spazEQI/0XNwpft8QAIwHSuA2WelVi/o\nzAlF08DnbJrOOtOnQq5wHOPlDYB4OtUzOYJk9scotrEnJxJzGsh/\n-----END CERTIFICATE-----\n",
        "bundle-name": "com.samples.dlp",
        "apl": "normal",
        "app-feature": "hos_system_app"
    },
    "acls": {
        "allowed-acls": [
            "ohos.permission.FILE_ACCESS_MANAGER",
            "ohos.permission.STORAGE_MANAGER",
            "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
            "ohos.permission.ACCESS_DLP_FILE",
            "ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS",
            "ohos.permission.MANAGE_LOCAL_ACCOUNTS",
            "ohos.permission.ENTERPRISE_DATA_IDENTIFY_FILE",
            "ohos.permission.GET_LOCAL_ACCOUNTS"
        ]
    },
    "permissions": {
        "restricted-permissions": []
    },
    "issuer": "pki_internal"
}

(9)签名应用(需要配置java环境) hdc uninstall com.samples.dlp
           在.\developtools_hapsigner-master\dist下新建一个记事本文件,命名为签名证书.bat,bat内容为:

java -jar hap-sign-tool.jar sign-profile -keyAlias "openharmony application profile release" -signAlg "SHA256withECDSA" -mode "localSign" -profileCertFile "OpenHarmonyProfileRelease.pem" -inFile "UnsgnedReleasedProfileTemplate.json" -keystoreFile "OpenHarmony.p12" -outFile "app1-profile.p7b" -keyPwd "123456" -keystorePwd "123456"

           在.\developtools_hapsigner-master\dist下新建一个记事本文件,命名为签名应用.bat,bat内容为:

java -jar hap-sign-tool.jar sign-app -keyAlias "openharmony application release" -signAlg "SHA256withECDSA" -mode "localSign" -appCertFile "OpenHarmonyApplication.pem" -profileFile "app1-profile.p7b" -inFile "entry-default-unsigned.hap" -keystoreFile "OpenHarmony.p12" -outFile "app1-signed.hap" -keyPwd "123456" -keystorePwd "123456"

(10)将entry-default-unsigned.hap移到目录 .\developtools_hapsigner-master\dist下
(11)依次运行签名证书.bat和签名应用.bat,当前目录会产生一个文件app1.signed.hap
(12)安装应用
           hdc install app1-signed.hap
(13)如果之后更改了DLP samples项目,再次执行Build Hap(s),然后将entry-default-unsigned.hap移到目录 .\developtools_hapsigner-master\dist下,运行签名应用.bat,执行hdc install app1-signed.hap