过滤Home属性的应用,然后禁止此类应用的安装,目前定制项目中十有八九都是客户提供launcher,然后禁止别的launcher安装,如何屏蔽呢?修改文件frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java,修改里面的私有方法installNewPackageLIF,

    private static boolean hasLauncherCatagory(ActivityIntentInfo filter) {        return filter.hasCategory(Intent.CATEGORY_HOME);    }    /*     * Install a non-existing package.     */    private void installNewPackageLIF(PackageParser.Package pkg, final int policyFlags,            int scanFlags, UserHandle user, String installerPackageName, String volumeUuid,            PackageInstalledInfo res) {        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "installNewPackage");        // Remember this for later, in case we need to rollback this install        String pkgName = pkg.packageName;        .......//省略若干行        try {            PackageParser.Package newPackage = scanPackageTracedLI(pkg, policyFlags, scanFlags,System.currentTimeMillis(), user);           //add for prevent 3rd app  to be installed start             for (PackageParser.Activity a : newPackage.activities) {                for (ActivityIntentInfo filter : a.intents) {                    if (hasLauncherCatagory(filter) && !pkgName.equals("com.vc")) { //判断是否是launcher                        deletePackageLIF(pkgName, UserHandle.ALL, false, null, 0,res.removedInfo, false,null);    //如果是launcher就删除文件,并且提示无法安装                        res.setError(INSTALL_FAILED_INVALID_INSTALL_LOCATION,                                "Cannot install updates to system or vendor apps on sdcard");                        return;                    }                }            }            //add for prevent 3rd app  to be installed end            updateSettingsLI(newPackage, installerPackageName, null, res, user);            ......//省略若干行

 

更多相关文章

  1. Pycharm安装PyQt5的详细教程
  2. Android(安卓)环境搭建
  3. 第一章 andriod studio 安装与环境搭建
  4. 第17天android:《android从零开始》视频(1-5)
  5. Android,一个思路实现APP版本更新
  6. android插件汇总
  7. Android(安卓)RabbitMQ使用之RabbitMQ安装及配置
  8. android mtk6592 禁止拖动主界面图标
  9. ubuntu NDK 的安装

随机推荐

  1. android下载系统版本步骤(通过SecureCRT)
  2. Android(安卓)WebView 软键盘遮挡输入框
  3. android 画图------类似跑马灯的效果
  4. android6.0源码分析之AMS服务源码分析
  5. Android(安卓)如何添加一个apk使模拟器和
  6. Android(安卓)自定义View实现带进度的下
  7. Android应用开发——Activity组件
  8. 解决下载Android(安卓)Build-tools 19.1.
  9. Android之开源中国客户端源码分析(一)
  10. LayoutInflater的inflate方法使用