android GMS认证之testNoDebuggable
来源:互联网 发布:淘宝店茶叶招牌 编辑:程序博客网 时间:2024/05/17 21:59
一个关于CTS的fail项
现在有一个CTS的fail项:
从fail信息来看,是我们的手机中有一个应用—-com.apploaded.device_info_lanix,开户了debug权限,只要找到这个app,将其删除就OK了。
于是,我在整个应用中查找关键字(com.apploaded.device_info_lanix):
grep -rnw "com.apploaded.device_info_lanix" ./
让人吃惊的事情发生了,在整个工程中没有关于这个关键字,这……….。好吧,我只有放大招了。
我提了一个case给高通,高通很快给了一个回复:
Dear customer: Set<String> debuggableApps = new HashSet<String>(); List<ApplicationInfo> apps = getPackageManager() .getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES); for (ApplicationInfo app : apps) { String appName = app.packageName; if ((app.flags & ApplicationInfo.FLAG_DEBUGGABLE) == ApplicationInfo.FLAG_DEBUGGABLE) { debuggableApps.add(appName); System.out.println(app.sourceDir); System.out.println(appName); } } app.sourceDir 可以确定这个app的安装位置。
从高通回复,我们能看到其意思就是找到开启debug权限的app,看到其位置信息和名称。
好了,够了,动手写了一个test应用,将其代码写入,立刻得到了这个apk:
DeviceInfoLanix
,然后,在mk文件中将其删除,再测试,可以pass了,问题解决了。
android获取app的信息
再回过头来,我们看解决这个问题的关键,是要能得到app的信息,我们将这个高通的回复再完善一下,得到下面这个方法。这个方法可以得到app的信息如下:apk的位置,名称,类名,数据位置,包名,库的位置,权限,进程名,是否是debug等等。
/*** showAppInfo :* @param * @return void* @throws */private void showAppInfo() {// TODO Auto-generated method stub List<ApplicationInfo> apps = getPackageManager().getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES); for (int i=0;i<apps.size();i++) { Log.i(TAG, "---------第"+i+"个app------"); Log.i(TAG, "app.sourceDir:"+apps.get(i).sourceDir); Log.i(TAG, "name:"+apps.get(i).name); Log.i(TAG, "className:"+apps.get(i).className); Log.i(TAG, "dataDir:"+apps.get(i).dataDir); Log.i(TAG, "packageName:"+apps.get(i).packageName); Log.i(TAG, "nativeLibraryDir:"+apps.get(i).nativeLibraryDir); Log.i(TAG, "backupAgentName:"+apps.get(i).backupAgentName); Log.i(TAG, "permission:"+apps.get(i).permission); Log.i(TAG, "processName:"+apps.get(i).processName); Log.i(TAG, "publicSourceDir:"+apps.get(i).publicSourceDir); Log.i(TAG, "taskAffinity:"+apps.get(i).taskAffinity); Log.i(TAG, "flags:"+apps.get(i).flags); Log.i(TAG, "app is debugable:" +((apps.get(i).flags & ApplicationInfo.FLAG_DEBUGGABLE) == ApplicationInfo.FLAG_DEBUGGABLE)); } }
一个app简单的输出信息:
01-14 09:56:53.467: I/hexiaoming_dd(11872): ---------第118个app------01-14 09:56:53.467: I/hexiaoming_dd(11872): name:null01-14 09:56:53.467: I/hexiaoming_dd(11872): className:null01-14 09:56:53.467: I/hexiaoming_dd(11872): nativeLibraryDir:/system/priv-app/ApeCloudFileManager/lib/arm01-14 09:56:53.467: I/hexiaoming_dd(11872): publicSourceDir:/system/priv-app/ApeCloudFileManager/ApeCloudFileManager.apk01-14 09:56:53.474: I/hexiaoming_dd(11872): processName:com.android.bluetooth01-14 09:56:53.474: I/hexiaoming_dd(11872): publicSourceDir:/system/app/Bluetooth/Bluetooth.apk
当我看到是第118个app的时候,这还是没有安装任何三方app的时候,我知道了,有的手机反应慢,这个问题大家现在应该是不是都理解,明白。
……..
0 0
- android GMS认证之testNoDebuggable
- android之GMS认证
- android GMS认证之testScreenCaptureDisabled_allowedPrimaryUser
- android GMS认证之testGoogleDuoPreloaded
- android GMS认证之CTS 常用命令
- Android 之Google认证GMS详细解剖
- android GMS认证之CTS测试命令详细
- GMS认证之CtsVerifier测试
- GMS认证之verifier--LOCATION源码赏析
- Android 装置CTS与GMS认证差异
- Android 7.0 GMS认证(一)
- android.permission.cts.DebuggableTest -- testNoDebuggable
- GMS认证之CtsVerifier测试-Screen Pinning Test
- GMS认证记录
- 什么是GMS认证?
- Android ROM开发之预制GMS
- Android学习笔记--GMS认证(常见的cts—fail及解决方法)
- Android学习笔记--GMS认证中常见的fail项及解决方法
- java中的一些总结
- 最大公约数&最小公倍数算法
- MySQL存储引擎总结
- 分布式事务-简单总结
- RAC11.2.0.4.0->11.2.0.4.7
- android GMS认证之testNoDebuggable
- iOS动画效果和实现
- android性能编码规范
- 内存寻址
- UESTC - 92 Journey(LCA)1012四川省赛
- 截屏快捷键
- Android 闹钟
- 点击文字选中checkbox
- HttpWebRequest 绝技