首页 > 其他分享 >Android 11 -- 强制清理app后台,关于权限引发的问题

Android 11 -- 强制清理app后台,关于权限引发的问题

时间:2023-11-21 17:13:08浏览次数:34  
标签:11 xml -- app android 权限 com launcher3

需求:发现一个第三方应用,点击最近任务,在清理后台的界面没办法将它彻底杀死

android 11 的最近任务部分在launcher3 里面 quickstep 里面

quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java

在这个里面添加强制清理app的方法

private void removeSignApps(String pkgname) {
        if ("xxx".contains(pkgname)){
            ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
            am.forceStopPackage(pkgname);
            am.killBackgroundProcesses(pkgname);
        }
    }

android 杀死app的方法

编译,push之后,发现不生效,查看日志看见了报错:没有申请权限。
forceStopPackage并不能被第三方程序调用,只能让系统应用调用。
使用条件:

1)权限:<uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/>
         <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>

2)只能运行在系统进程:android:sharedUserId="android.uid.system"

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:sharedUserId="android.uid.system"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
-----------------------------------

3)android.uid.system属性的进程 须要在android.mk里这样设置:

  LOCAL_CERTIFICATE := platform

参考——1
参考——2

再次编译,push之后,机器卡在开机动画,抓取日志发现:
Signature|privileged permissions not in privapp-permissions whitelist 异常

Android 8.0开始,一些特殊的权限被标记为系统特许权限,并且等级为signature|privileged,
如果应用要使用这些权限,不但要在app的清单文件中申请,还要将其加入对应的白名单中。
白名单文件一般是来自frameworks/base/data/etc/目录

Android.bp
com.android.carrierconfig.xml
com.android.contacts.xml
com.android.dialer.xml
com.android.documentsui.xml
com.android.emergency.xml
com.android.launcher3.xml
com.android.provision.xml
com.android.settings.intelligence.xml
com.android.settings.xml


我修改的是launcher部分,找到com.android.launcher3.xml文件,添加相应的权限
然后push 它到机器里,不报错了!!!

备注:
adb shell -x
find ./system ./system_ext ./etc -name com.android.launcher3.xml (寻找其在机器中的位置)

参考——3
参考——4

标签:11,xml,--,app,android,权限,com,launcher3
From: https://www.cnblogs.com/kato-T/p/17847011.html

相关文章

  • 09-基础SQL-DQL(数据查询语言)-聚合函数(count、max、min、avg、sum)
    DQL-介绍(常用)DQL英文全称是DataQueryLanguage(数据查询语言),数据查询语言用来查询数据库中表的记录查询关键字:SELECTDQL-语法......
  • umdh工具使用简介
    UMDH(User-ModeDumpHeap)是一个用于调试和分析内存泄漏的工具。它是微软提供的一种Windows调试工具,可帮助开发人员找出应用程序中的内存泄漏问题。UMDH的工作原理是基于堆分配的内存跟踪。它通过监测应用程序的堆分配和释放操作,生成一系列堆快照(HeapSnapshot)。这些快照记录了......
  • c++文件的操作
    文件操作:c++对文件的操作需要包含头文件<fstream>文件的类型,主要分为文本文件(ASCII形式存在电脑) 和二进制文件。文件操作方式:1.写文件(ofstream)2.读文件(ifstream)3.读写文件(fstream) 写文件步骤:1.包含头文件》2.创建流对象》3.打开文件》4.写数据》5.关闭流#inc......
  • Android 11 -- 关于dialog和悬浮窗导致SystemUI状态栏下拉频繁闪烁(窗口焦点问题)
    bug描述:如果当前app是全屏的属性,导致状态栏隐藏且有dialog弹出时,这个情况下想下拉显示状态栏,会导致状态栏频繁闪烁。//services/core/java/com/android/server/wm/DisplayPolicy.java//更新系统状态栏的属性intupdateSystemUiVisibilityLw(){//Ifthereisnow......
  • AZ-900 practice test-004
     Question7of50WhichtwoAzureresourcescanmakeuseofavailabilityzones?Eachcorrectanswerpresentsacompletesolution.Availabilityzonesareprimarilyforvirtualmachines,manageddisks,loadbalancers,andSQLdatabases.Describethecore......
  • Linux的shell脚本中的比较运算符
    shell中的比较运算符-eq    //等于-ne    //不等于-gt    //大于(greater)-lt     //小于 (less)-ge    //大于等于-le    //小于等于在今天的Linux——shell命令实验中,执行.sh脚本:if((a<60));thenecho"Youdidn'tpassthe......
  • sql 查询数据库的常用脚本
    查询数据库的所有表的记录数 ----查询所有表的记录数量----------------------------------------------------------------------------------selecta.nameas表名,max(b.rows)as记录条数fromsysobjectsa,sysindexesbwherea.id=b.idand......
  • Element UI树形表格刷新保留之前展开的列
     完整链接: ElementUI树形表格刷新自动展开_element表格刷新之后仍然是展开状态_HyunDerek的博客-CSDN博客......
  • C# 窗体应用程序文件夹内容及各文件功能
     1.每创建一个窗体就会生成三个文件,.cs、.Designer.cs、.resx,.cs是整个窗体的应用程序代码,重点。 2.Properties主要是一些属性信息。3.app.config是配置信息,实现修改配置信息,程序就根据配置信息进行运行。 ......
  • 04MYSQL
    查询关键字之having过滤having与where的功能是一模一样的都是对数据进行筛选where用在分组之前的筛选having用在分组之后的筛选为了更好的区分所以将where说成筛选having说成过滤#统计每个部门年龄在30岁以上的员工的平均薪资并且保留平均薪资大于10000的部门......