- 浏览: 24263 次
- 性别:
- 来自: 上海
文章分类
最新评论
1 diff --git a/base/services/core/java/com/android/server/pm/PackageManagerService.java b/base/services/core/java/com/android/server/pm/PackageManagerService.java
2 index 9af1605..cd1ddf3 100644
3 --- a/base/services/core/java/com/android/server/pm/PackageManagerService.java
4 +++ b/base/services/core/java/com/android/server/pm/PackageManagerService.java
5 @@ -5634,12 +5650,43 @@ public class PackageManagerService extends IPackageManager.Stub {
6 }
7 }
8
9 + private static final String XTS_PERM = "com.google.android.xts.permission";
10 + private static final String[] WHITE_LIST = {
11 + "com.package.name",
12 + };
13 @Override
14 public ParceledListSlice<PackageInfo> getInstalledPackages(int flags, int userId) {
15 final boolean listUninstalled = (flags & PackageManager.GET_UNINSTALLED_PACKAGES) != 0;
16
17 enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, "get installed packages");
18
19 + boolean isXts = false;
20 + final String[] packages = getPackagesForUid(Binder.getCallingUid());
21 + if (packages != null && packages.length > 0) {
22 + if (packages[0].equals(XTS_PERM)) {
23 + isXts = true;
24 + Slog.w(TAG, "XTS, calling package -> " + packages[0] + ", is XTS: " + isXts);
25 + }
26 + }
27 // writer
28 synchronized (mPackages) {
29 ArrayList<PackageInfo> list;
30 @@ -5653,7 +5700,24 @@ public class PackageManagerService extends IPackageManager.Stub {
31 pi = generatePackageInfoFromSettingsLPw(ps.name, flags, userId);
32 }
33 if (pi != null) {
34 +/* Modified for XTS
35 list.add(pi);
36 + */
37 + boolean needToAdd = true;
38 + if (isXts) {
39 + for (int i=0; i<WHITE_LIST.length; ++i) {
40 + if (WHITE_LIST[i].equals(pi.packageName)) {
41 + needToAdd = false;
42 + Slog.w(TAG, "XTS, remove package: " + pi.packageName);
43 + }
44 + }
45 + }
46 +
47 + if (needToAdd) {
48 + list.add(pi);
49 + }
50 }
51 }
52 } else {
53 @@ -5661,7 +5725,24 @@ public class PackageManagerService extends IPackageManager.Stub {
54 for (PackageParser.Package p : mPackages.values()) {
55 PackageInfo pi = generatePackageInfo(p, flags, userId);
56 if (pi != null) {
57 +/* Modified for XTS
58 list.add(pi);
59 + */
60 + boolean needToAdd = true;
61 + if (isXts) {
62 + for (int i=0; i<WHITE_LIST.length; ++i) {
63 + if (WHITE_LIST[i].equals(pi.packageName)) {
64 + needToAdd = false;
65 + Slog.w(TAG, "XTS, remove package: " + pi.packageName);
66 + }
67 + }
68 + }
69 +
70 + if (needToAdd) {
71 + list.add(pi);
72 + }
73 }
74 }
75 }
2 index 9af1605..cd1ddf3 100644
3 --- a/base/services/core/java/com/android/server/pm/PackageManagerService.java
4 +++ b/base/services/core/java/com/android/server/pm/PackageManagerService.java
5 @@ -5634,12 +5650,43 @@ public class PackageManagerService extends IPackageManager.Stub {
6 }
7 }
8
9 + private static final String XTS_PERM = "com.google.android.xts.permission";
10 + private static final String[] WHITE_LIST = {
11 + "com.package.name",
12 + };
13 @Override
14 public ParceledListSlice<PackageInfo> getInstalledPackages(int flags, int userId) {
15 final boolean listUninstalled = (flags & PackageManager.GET_UNINSTALLED_PACKAGES) != 0;
16
17 enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, "get installed packages");
18
19 + boolean isXts = false;
20 + final String[] packages = getPackagesForUid(Binder.getCallingUid());
21 + if (packages != null && packages.length > 0) {
22 + if (packages[0].equals(XTS_PERM)) {
23 + isXts = true;
24 + Slog.w(TAG, "XTS, calling package -> " + packages[0] + ", is XTS: " + isXts);
25 + }
26 + }
27 // writer
28 synchronized (mPackages) {
29 ArrayList<PackageInfo> list;
30 @@ -5653,7 +5700,24 @@ public class PackageManagerService extends IPackageManager.Stub {
31 pi = generatePackageInfoFromSettingsLPw(ps.name, flags, userId);
32 }
33 if (pi != null) {
34 +/* Modified for XTS
35 list.add(pi);
36 + */
37 + boolean needToAdd = true;
38 + if (isXts) {
39 + for (int i=0; i<WHITE_LIST.length; ++i) {
40 + if (WHITE_LIST[i].equals(pi.packageName)) {
41 + needToAdd = false;
42 + Slog.w(TAG, "XTS, remove package: " + pi.packageName);
43 + }
44 + }
45 + }
46 +
47 + if (needToAdd) {
48 + list.add(pi);
49 + }
50 }
51 }
52 } else {
53 @@ -5661,7 +5725,24 @@ public class PackageManagerService extends IPackageManager.Stub {
54 for (PackageParser.Package p : mPackages.values()) {
55 PackageInfo pi = generatePackageInfo(p, flags, userId);
56 if (pi != null) {
57 +/* Modified for XTS
58 list.add(pi);
59 + */
60 + boolean needToAdd = true;
61 + if (isXts) {
62 + for (int i=0; i<WHITE_LIST.length; ++i) {
63 + if (WHITE_LIST[i].equals(pi.packageName)) {
64 + needToAdd = false;
65 + Slog.w(TAG, "XTS, remove package: " + pi.packageName);
66 + }
67 + }
68 + }
69 +
70 + if (needToAdd) {
71 + list.add(pi);
72 + }
73 }
74 }
75 }
发表评论
-
Android M low ram device优化apk安装速度
2016-11-28 11:12 2869安装apk慢是因为dex2oat行为导致的,要优化可以牺牲一些 ... -
Android M runtime permission介绍
2016-01-20 23:10 807Runtime permission介绍: -M版本,若ap ... -
Android 5.1部分apk的升级或缓存功能无效
2015-06-09 21:30 793google在external storage的权限限制导致的 ... -
Android 5.1截获HOME键
2015-06-09 21:20 1231修改framework android policy 在Ph ... -
android mtk平台内置apk,可卸载恢复出厂设置还在
2014-08-07 18:29 34281.在源码的根目录下 cd vendor mkdir cust ... -
android mtk平台默认输入法
2014-08-06 16:31 1456[Description] 如何修改默认输入法? [Solut ... -
MTK Android 相机差值
2014-07-02 21:41 894mtk 相机差值都做在对应sensor的config feat ... -
MTK Android EMMC 项目小内存优化
2014-07-02 10:48 2719可以在ProjectConfig.mk中打开以下宏 MTK_ ... -
Android实现listview tag,重写adapter
2012-09-11 15:41 718public class SoftListAdapter ex ... -
Android重写SimpleCursorAdapter例子
2012-09-11 15:37 1357public class MySimpleCursorAdap ... -
Android PackageManager 卸载包的方法
2012-09-11 15:34 2798PackageManager pkgManager = m ... -
Android后台发送短信方法
2012-09-11 15:29 861// 根据设置,是否发送短信 public static ... -
Android播放音乐方法
2012-09-11 15:26 814private void playRingTone() { ... -
Android修改系统闹铃的持续时间
2012-08-28 10:55 1682直接上Patch --- AlarmKlaxon.java.b ... -
Android源码加入第三方jar和so动态库的方法
2012-08-25 14:13 665一。第三方jar 1.在当前项目Android.mk文件中加入 ...
相关推荐
Android XTS是一个专门为Android系统设计的安全测试工具套件,它在Android开发和维护过程中起着至关重要的作用。XTS,全称是“eXtreme Test Suite”,它提供了丰富的功能来帮助开发者和安全专家深入检查Android系统...
android xts测试包。用于高通GMS集成认证测试。 包含Linux跟windows下测试环境(自己写的,可用,独此一家)。 如果连接不上手机请把你的adb.exe放到C:\WINDOWS\system32目录下,或者将你的sdk-platform目录加入系统...
- **证书**:可能用于验证设备的身份和权限,以运行特定的测试。 运行GTS测试时,你需要一个支持ADB(Android Debug Bridge)的环境,并将设备或模拟器连接到电脑。通过命令行或者专门的测试执行工具,你可以启动...
总之,配置Google TV的XTS测试环境涉及多个步骤,从安装SDK到运行测试,再到解析结果和调试代码。通过严谨的测试,开发者可以确保他们的应用或服务在Google TV平台上运行良好,提供优质的用户体验。
OpenHarmony xts测试培训文档,培训openharmony的xts怎么做xts认证
android xts问题方法总结
本教程将详细阐述XTS3000的写频过程,帮助用户掌握如何设置和配置这款对讲机以满足特定通信需求。 1. **写频概述** 写频是指为对讲机设定频率、亚音频、扫描等功能的过程。对于XTS3000来说,写频是确保其与其它...
XTS-AES模式同样解决了CBC(密码块链接模式)模式存在的一个问题,即如果数据块的一部分在传输过程中损坏或丢失,会导致整个数据块无法解密的问题。XTS-AES通过采用分组密码的工作模式和调整密钥的结合,允许加密...
描述中提到,建议只有内存为8M的XTS5000设备才能刷入此固件,这意味着如果设备的内存只有4M,刷入新固件可能导致设备运行不稳定或无法正常工作。因此,在升级前,用户应确保自己的设备满足硬件要求,避免因不当操作...
本项目为基于Python、HTML和Shell开发的自测试与XTS认证测试基础库设计源码,总文件量达134个,包括99个Python脚本、7个PNG图片、6个GIF动画、5个Markdown...该库旨在为开发自测试和XTS认证测试提供全面的解决方案。
该项目是采用Python语言开发的test_xdevice自测试与XTS认证测试基础库,包含87个文件,包括65个Python源文件、6个GIF图片文件、3个XML配置文件、2个...该项目旨在为开发者提供一套完整的自测试与XTS认证测试解决方案。
摩托罗拉ASTRO Saber 和 XTS3000 机型对讲机写频软件 内涵两款软件: ASTRO_Saber_&_XTS3000_Depot_05.02.02 ASTRO_Saber_xts3000_cps_r050300 (推荐)
摩托罗拉XTS3000是一款广泛应用于公共安全、应急通信和专业无线电服务领域的对讲机设备。这款对讲机以其出色的性能、耐用性和可靠的通信能力而受到好评。"XTS3000写频软件"是针对该型号对讲机设计的专业配置工具,...
XTS3000是一款专为专业无线电通信设计的写频软件,主要用于配置和管理ASTRO Saber系列的对讲机设备。这款软件允许用户自定义对讲机的各种功能,如频率设置、扫描列表、组呼叫配置等,以满足不同工作场景的需求。下面...
摩托罗拉天文XTS5000数字便携式收音机模型III是一种专门为专业通讯设计的无线对讲设备,该型号属于XTS系列,适用于满足FCC RF区域/频道能量暴露要求的职业用户。它提供了多个功能和按钮来控制和使用设备,如开关机/...
摩托罗拉XTS5000是一款ASTRO®数字便携式无线电,属于Model III系列。该无线电设备是专门针对职业用途设计的,以满足FCC(美国联邦通信委员会)对无线电频率能量暴露的要求。在使用XTS5000对讲机之前,用户必须阅读...
XTS2500手置频过程是摩托罗拉对讲机XTS2500进行手动设置频道频率的操作流程,对于专业用户来说是一项至关重要的技术。以下将详细阐述这一过程: 1. **基本按键操作**: - 1号键:作为返回或退出键,用于退回到上一...
【Astro Saber XTS3000 ...总之,Astro Saber XTS3000 CPS R05.03.00是摩托罗拉解决方案提供的一款高度定制化和专业的无线电通信工具,通过CPS软件更新,可以优化设备性能,提高通信效率,同时确保设备安全和可靠性。
### 摩托罗拉XTS5000对讲机关键知识点解析 #### 一、产品概述 摩托罗拉XTS5000是一款专为职业用途设计的高性能数字对讲机,支持VHF(甚高频)、UHF(特高频)范围1、范围2以及700至800MHz频段。该设备采用了先进的...
XTS支付宝分布式事务学习指南汇编.pdf