一键隐藏kodi 一键隐藏app amlogic rockchip tvbox

   怎么隐藏一个app的显示呢?方法十多种多样的。


1  、PackageManager.getComponentEnabledSettingge 跟setComponentEnabledSetting 这两个办法是可行的。当然有他的优缺点,可以试试


2、直接注释掉mainfest里面的入口category android:name="”android.intent.category.LAUNCHER”"></category> ,这个是Android提供的一个隐式启动app的方法



3、上面的方法都是直接利用改了Android 现有的api去改的。

其实有更加灵活的修改的方法。那就是直接去修改packagemanagerservice


 public ParceledListSlice<PackageInfo> getInstalledPackages(int flags, int userId) {//vincent
    
        final boolean listUninstalled = (flags & PackageManager.GET_UNINSTALLED_PACKAGES) != 0;

        enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, "get installed packages");

        // writer
        synchronized (mPackages) {
            ArrayList<PackageInfo> list;
            if (listUninstalled) {
                list = new ArrayList<PackageInfo>(mSettings.mPackages.size());
                for (PackageSetting ps : mSettings.mPackages.values()) {
                    PackageInfo pi;
                    if (ps.pkg != null) {
                        pi = generatePackageInfo(ps.pkg, flags, userId);
                    } else {
                        pi = generatePackageInfoFromSettingsLPw(ps.name, flags, userId);
                    }
                    if (pi != null) {
                 
                    	if(标志位){
                        list.add(pi);
                      }
                    }
                }
            } else {
                list = new ArrayList<PackageInfo>(mPackages.size());
                for (PackageParser.Package p : mPackages.values()) {
                    PackageInfo pi = generatePackageInfo(p, flags, userId);
                    if (pi != null) {
                    	
                    if(标志位){
                    	
                        list.add(pi);
                        	}
                    }
                }
            }
还有另外一个地方:

    @Override
    public ParceledListSlice<ApplicationInfo> getInstalledApplications(int flags, int userId) {//vincent
        if (!sUserManager.exists(userId)) return null;
        final boolean listUninstalled = (flags & PackageManager.GET_UNINSTALLED_PACKAGES) != 0;

        // writer
        synchronized (mPackages) {
            ArrayList<ApplicationInfo> list;
            if (listUninstalled) {
                list = new ArrayList<ApplicationInfo>(mSettings.mPackages.size());
                for (PackageSetting ps : mSettings.mPackages.values()) {
                    ApplicationInfo ai;
                    if (ps.pkg != null) {
                        ai = PackageParser.generateApplicationInfo(ps.pkg, flags,
                                ps.readUserState(userId), userId);
                    } else {
                        ai = generateApplicationInfoFromSettingsLPw(ps.name, flags, userId);
                    }
                    if (ai != null) {
                    	
                    	if(标志位){
                      list.add(ai);
                      }
                    }
                }
            } else {
                list = new ArrayList<ApplicationInfo>(mPackages.size());
                for (PackageParser.Package p : mPackages.values()) {
                    if (p.mExtras != null) {
                        ApplicationInfo ai = PackageParser.generateApplicationInfo(p, flags,
                                ((PackageSetting)p.mExtras).readUserState(userId), userId);
                        if (ai != null) {
                        	
                          list.add(ai);
                          }
                        }
                    }
                }
            }

            return new ParceledListSlice<ApplicationInfo>(list);
        }
    }

需要隐藏那个app,又或者需要做其他什么操作,都可以在代码块的标志位里面进行修改。


当然。所有通过这两个api获取的地方,app都会被隐藏掉。如果还想做深入的隐藏。例如data/app ,就需要对整个文件系统进行屏蔽,对busybox  脚本命令进行过滤

。来来回回,其实套路都是那么个样。。。。。。。你懂的。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值