GTS:com.google.android.installpackageswhitelist.gts.GtsInstallPackagesWhitelistDeviceTest#testInstal
2017-07-10 18:42
821 查看
该项测试(Android Google Test Suite 5.0_r1新增的)是检查哪些apk添加了android.permission.INSTALL_PACKAGES权限(安装apk权限),有源码的apk只需将AndroidManifest.xml里对应权限去掉(但静默安就没权限了),没源码内置的第三方apk就麻烦了。
下面介绍修改framework绕过该项的fail,类似GTS:com.google.android.permission.gts.DefaultPermissionGrantPolicyTest#testDefaultGrants修改方法。
首先确认该测试的具体apk(testcases/GtsInstallPackagesWhitelistDeviceTestCases.apk),再反编译该apk并阅读代码
.line 58
invoke-virtual {v0, v1}, Landroid/content/pm/PackageManager;->getInstalledPackages(I)Ljava/util/List;
将getInstalledPackages返回的List<PackageInfo>把要绕过的apk删掉,再返回给...TestCases.apk,同上一篇修改ApplicationPackageManager,java
/** @hide */
@Override
public List<PackageInfo> getInstalledPackages(int flags, int userId) {
try {
String taker = mContext.getPackageName();
ParceledListSlice<PackageInfo> slice = mPM.getInstalledPackages(flags, userId);
List<PackageInfo> list = slice.getList();
if ("com.google.android.installpackageswhitelist.gts".equals(taker)) {
String[] whiteLists = new String[] {"com.telcel.contenedor", "com.facebook.system",
"com.portal", "com.naranya.claroapps", "com.android.systemui"};
Iterator<PackageInfo> it = list.iterator();
while(it.hasNext()) {
PackageInfo pi = it.next();
String packageName = pi.packageName;
if (Arrays.asList(whiteLists).contains(packageName)) {
Log.i(TAG, "getInstalledPackages remove packageName");
it.remove();
}
}
}
return list;
} catch (RemoteException e) {
throw new RuntimeException("Package manager has died", e);
}
}
下面介绍修改framework绕过该项的fail,类似GTS:com.google.android.permission.gts.DefaultPermissionGrantPolicyTest#testDefaultGrants修改方法。
首先确认该测试的具体apk(testcases/GtsInstallPackagesWhitelistDeviceTestCases.apk),再反编译该apk并阅读代码
.line 58
invoke-virtual {v0, v1}, Landroid/content/pm/PackageManager;->getInstalledPackages(I)Ljava/util/List;
将getInstalledPackages返回的List<PackageInfo>把要绕过的apk删掉,再返回给...TestCases.apk,同上一篇修改ApplicationPackageManager,java
/** @hide */
@Override
public List<PackageInfo> getInstalledPackages(int flags, int userId) {
try {
String taker = mContext.getPackageName();
ParceledListSlice<PackageInfo> slice = mPM.getInstalledPackages(flags, userId);
List<PackageInfo> list = slice.getList();
if ("com.google.android.installpackageswhitelist.gts".equals(taker)) {
String[] whiteLists = new String[] {"com.telcel.contenedor", "com.facebook.system",
"com.portal", "com.naranya.claroapps", "com.android.systemui"};
Iterator<PackageInfo> it = list.iterator();
while(it.hasNext()) {
PackageInfo pi = it.next();
String packageName = pi.packageName;
if (Arrays.asList(whiteLists).contains(packageName)) {
Log.i(TAG, "getInstalledPackages remove packageName");
it.remove();
}
}
}
return list;
} catch (RemoteException e) {
throw new RuntimeException("Package manager has died", e);
}
}
相关文章推荐
- GMS 认证之GTS 测试问题armeabi-v7a GtsInstallPackagesWhitelistDeviceTestCases
- com.google.android.gts.afw.AfwRequiredAppsOverlaysTest - testDialerRequiredManagedDeviceOverlay fail
- com.google.android.gts.backup.BackupHostTest#testGmsBackupTransportIsDefault
- com.google.android.xts.devicepolicy.DeviceOwnerTest#testFactoryResetProtection fail
- com.google.android.xts.devicepolicy.DeviceOwnerTest--testUserManagement fail
- GTS:com.google.android.permission.gts.DefaultPermissionGrantPolicyTest#testDefaultGrants
- com.google.android.afw.gts.AfwSupportTest#testManagedProfileSupported
- GTS fail: com.google.android.gts.afw.AfwRequiredAppsOverlaysTest - testDialerRequiredManagedDeviceOv
- com.google.android.permission.gts.DefaultPermissionGrantPolicyTest#testDefaultGrants
- com.google.android.gts.placement.CoreGmsAppsTest#testCoreGmsAppsPreloaded fail
- android GTS-- com.google.android.xts.placement.UiPlacementTest fail
- 关于android SDK安装Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml出错
- 解决:Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list.xml, reason: connect
- Android SDK Manager更新错误,Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list
- Failed to fectch URl https://dl-ssl.google.com/android/repository/addons_list.xml, reason: Connectio
- 关于android SDK安装Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml出错
- android SDK安装Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml出错
- 关于android SDK安装Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml出错
- [Android] Failed to install AndroidTest.apk on device 'emulator-5554!
- Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-2.xml