ICS33.050CCSM30团体标准T/TAF108-2022移动终端应用软件列表权限实施指南Mobileterminalapplicationlistpermissionimplementationguide2022-02-23发布2022-02-23实施电信终端产业协会发布T/TAF108-2022I目次前言................................................................................II引言...............................................................................III1范围...............................................................................12规范性引用文件.....................................................................13术语和定义.........................................................................14概述...............................................................................15应用软件列表权限实施方式...........................................................25.1移动终端实施应用软件列表权限方式...............................................25.2应用软件申请使用应用软件列表权限方式...........................................26应用软件未申请应用软件列表权限处理方式.............................................46.1移动终端处理方式...............................................................46.2应用软件处理方式...............................................................4T/TAF108-2022II前言本文件按照GB/T1.1-2020《标准化工作导则第1部分:标准化文件的结构和起草规则》的规定起草。请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。本文件由电信终端产业协会提出并归口。本文件起草单位:华为技术有限公司、中国信息通信研究院、博鼎实华(北京)技术有限公司、OPPO广东移动通信有限公司、维沃移动通信有限公司、荣耀终端有限公司、小米通讯技术有限公司。本文件主要起草人:衣强、武林娜、王艳红、杜云、刘陶、宁华、董霁、李伟生、李腾、贾科、张玮、赵晓娜、蒲兴、王乐、王宝林、张倞诚、任冠一。T/TAF108-2022III引言移动终端的普及、智能化、以及移动互联网的发展使得移动终端成为日常生活不可获取的部分,移动终端可支持用户实现工作、生活等各种服务,因此用户常常会在移动终端上安装各种应用软件,用户所安装的应用软件也正体现了用户使用习惯、爱好、行为特征等信息,因此具备较高的敏感度,同时,行业标准YD/T2407-2021《移动智能终端安全能力技术要求》中也对系统和应用软件调用用户应用软件列表提出管控要求,因此,本规范针对不支持应用软件列表管控的移动终端系统,给出通过权限管理实现应用软件列表管控方案,供移动终端和应用软件开发者开发、测试使用。T/TAF108-20221移动终端应用软件列表权限实施指南1范围本文件规定了基于安卓系统的移动终端实施应用软件列表权限的指导,同时也用于指导运行在移动终端上的应用软件申请、使用应用软件列表权限。本文件适用于基于安卓系统的移动终端、以及运行在该类移动终端上的应用软件。2规范性引用文件下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。YD/T2407-2021移动智能终端安全能力技术要求3术语和定义3.1移动终端smartmobileterminal移动终端是指接入公众移动通信网络、具有操作系统、可由用户自行安装和卸载应用软件的移动终端产品。3.2应用软件列表applicationlist应用软件列表指在移动终端上,所有已安装应用的应用信息,如已安装应用的名称、包名、版本等。4概述移动终端上用户的应用软件体现了用户兴趣、偏好、行为习惯等个人属性,可用来对用户进行画像分析,进而实现向用户定向推送、广告等业务,因此用户的应用软件列表信息属于敏感的个人信息,移动终端上的应用软件应谨慎使用,在征得用户同意后才可访问、收集。注:针对应用软件列表管控要求参考YD/T2407-20215.3.1.2.7及5.5.5.2章。本规范给出了移动终端实现应用软件列表管控的方案,并规定了应用软件获取用户的应用软件列表时的申请使用要求,避免了各终端厂家方案不一致、需要应用软件开发者多次适配的问题,实现了用户对应用软件列表信息可知可控。本规范适用应用软件确需获取应用软件列表信息场景,应用软件应在合理必要前提下谨慎使用应用软件列表信息,应用软件获取特定应用软件信息或部分应用软件信息,宜使用其它方式获取。T/TAF108-202225应用软件列表权限实施方式5.1移动终端实施应用软件列表权限方式5.1.1应用软件列表权限基本情况基于安卓系统的移动终端,移动终端厂商所提供的系统(以下简称“系统”)新增应用软件列表权限,并设置为敏感权限,应用软件需读取应用软件列表时,系统向用户告知并获得同意后,应用软件获取应用软件列表信息,权限名称如下:uses-permissionandroid:name=com.android.permission.GET_INSTALLED_APPS/。该权限对应安卓系统的获取应用软件列表接口包括但不限于:a)getInstalledApplications;b)getInstalledApplicationsAsUser;c)getInstalledPackages;d)getInstalledPackagesAsUser。5.1.2移动终端响应读取应用软件列表权限申请要求为响应应用软件调用应用软件列表权限,移动终端需满足以下要求:a)当应用软件调用系统相关获取应用软件列表接口时,系统增加应用软件列表权限的检测功能,检查应用软件是否已被授予该权限,根据权限的授予情况返回应用软件列表信息。b)应用主动申请应用软件列表权限时,系统应提供“始终允许”、“拒绝”选项,可选提供“仅在使用中允许”选项,若用户授权,如选择“始终允许”或“仅在使用中允许”则返回应用软件列表信息,若用户未授权,则不应返回应用软件列表信息,仅应返回申请应用自身标识信息。c)当应用软件在系统后台运行时,若首次申请“应用软件列表”权限,为避免不理解权限申请原因,给用户带来困扰,系统应拒绝该权限申请,非首次申请该权限,若用户授权则返回应用软件列表,用户未授权不返回应用软件列表信息,仅应返回申请应用自身标识信息。5.1.3移动终端实施应用软件列表权限其它要求移动终端实施应用软件列表权限,还需满足如下要求:a)系统新增对应用软件列表权限的权限管理功能。b)系统需提供应用软件列表权限查询接口,以判断当前所运行的系统是否支持应用软件列表权限。系统应指定一个名称为“oem_installed_apps_runtime_permission_enable”配置项,通过该配置项的值表示系统是否支持应用软件列表权限。系统通过将Settings.Secure设置该配置项,该配置项的值为1表示系统支持应用软件列表权限,其它取值表示系统不支持应用软件列表权限。5.2应用软件申请使用应用软件列表权限方式5.2.1应用软件申请应用软件列表权限流程图1给出了应用软件申请应用软件列表权限的基本流程,主要流程包括:在应用编译阶段,应用软件适配应用软件列表权限的声明要求,并根据系统版本及应用软件targetSDKversion值,确定是否需要适配安卓系统要求,适配安卓系统要求详见5.2.4节。T/TAF108-20223在应用运行阶段,应用软件检查当前系统是否支持应用软件列表权限,检查系统是否支持应用软件列表权限的方式见5.2.2节;当系统支持应用软件列表权限,应用软件申请应用软件列表权限以获得用户授权,进而获取应用软件列表信息,申请方式见5.2.3节。图1应用软件申请应用软件列表流程5.2.2申请前检查应用软件申请获得应用软件列表信息前,应先查询当前系统是否支持应用软件列表权限。检查的方式为应用软件查询“com.android.permission.GET_INSTALLED_APPS”权限定义者为系统应用,且通过调用接口Settings.Secure.getInt查询配置项“oem_installed_apps_runtime_permission_enable”的返回值,返回值为1表示系统支持应用软件列表权限,返回值为其它值表示系统不支持应用软件列表权限。5.2.3申请方式T/TAF108-20224应用软件运行首次请求获取应用软件列表信息时,应通过权限申请获得用户授权,申请的权限在AndroidManifest文件中声明。使用前先使用checkSelfPermission检查权限,确认授权后再使用;如果检查发现未被授权权限时,通过requestPermissions请求授权,覆写onRequestPermissionsResult方法,获取用户授权结果。5.2.4应用软件兼容安卓系统要求针对安卓系统版本号为11及以上系统,应用软件请求获得应用软件列表信息时,需要满足安卓系统对软件包可见性的要求,即在androidmanifest中声明安卓系统QUERY_ALL_PACKAGES权限,应用安装时,安卓系统QUERY_ALL_PACKAGES权限被授权,同时,应用软件还需适配本标准规定的应用软件列表权限(com.android.permission.GET_INSTALLED_APPS),当安卓系统授权QUERY_ALL_PACKAGES权限且用户授权com.android.permission.GET_INSTALLED_APPS权限后,系统才返回应用软件列表信息,否则,系统不应返回应用软件列表信息,仅返回应用软件自身标识信息。5.2.5申请应用软件列表权限要求应用软件申请应用软件列表权限需满足如下要求:a)应用软件应仅在业务功能确需获取应用软件列表信息时,才申请该权限。b)当应用软件仅需要获取某个或某几个特定应用信息时,不应申请该权限获取用户应用列表信息,宜通过其它接口获得应用信息,如getApplicationInfo等。c)应用软件不应在涉及到应用软件列表信息的功能未开启使用时申请应用软件列表权限,如应用刚启动时即申请应用列表权限。d)应用软件应仅在用户可见的前台运行时申请应用软件列表权限。6应用软件未申请应用软件列表权限处理方式6.1移动终端处理方式根据本规范第4章描述,应用软件列表信息体现了用户兴趣、偏好、行为习惯等个人属性,当应用软件未主动申请第5章所述的应用软件列表权限,而调用安卓系统相关获取用软件列表接口时,系统不应返回应用软件列表信息,仅返回应用软件自身标识信息。6.2应用软件处理方式应用软件未主动申请的情况,系统仅返回应用软件自身信息,为保障应用软件正常运行,应用软件应参考第5章要求主要适配应用软件列表权限。T/TAF108-2022电信终端产业