首页 > 其他分享 >OTA升级应用缓存不更新

OTA升级应用缓存不更新

时间:2023-08-17 14:02:55浏览次数:34  
标签:缓存 SystemProperties OTA fingerprint cache 升级 cacheDir ota FileUtils

表现为,ota升级后应用没有更新,比如新内置应用不出现,需要恢复出厂设置才行,这里提供一种办法强制刷新缓存

修改PackageManagerService.java

这是因为国内版本为了过GMS版本后还能修改版本不让谷歌发现所以把fingerprint锁住了,PMS会在每次开机时根据fingerprint值在/data/system/package_cache目录下找fingerprint对应digest的cache目录,我这里是因为是userdebug版本,所以这里目录名称为1正常的是SystemProperties.digestOf("ro.build.fingerprint")通过这个生成的名称

OTA升级应用缓存不更新_缓存

正常ota升级的话这个值会变,所以会清空之前的缓存,使用新生成的目录,需要做如下特殊操作使系统在升级完ota后去更新缓存目录

 final File cacheBaseDir = Environment.getPackageCacheDirectory();
        if (!FileUtils.createDir(cacheBaseDir)) {
            return null;
        }

        // There are several items that need to be combined together to safely
        // identify cached items. In particular, changing the value of certain
        // feature flags should cause us to invalidate any caches.
        final String cacheName = FORCE_PACKAGE_PARSED_CACHE_ENABLED ? "debug"
                : SystemProperties.digestOf("ro.build.fingerprint");//文件夹的名称是通过这个生成的

        // Reconcile cache directories, keeping only what we'd actually use.
        for (File cacheDir : FileUtils.listFilesOrEmpty(cacheBaseDir)) {
            if (Objects.equals(cacheName, cacheDir.getName())) {//boyin 
            
                if(SystemProperties.get("persist.sys.ota_done","0").equals("1")){//添加标志位,需要对ota升级应用做修改,在升级成功后把这个标志位置为1
                    FileUtils.deleteContentsAndDir(cacheDir);
                    SystemProperties.set("persist.sys.ota_done","0");
                    Slog.d(TAG, "delete known cache ,升级成功:" + cacheDir.getName());
                }

                Slog.d(TAG, "Keeping known cache " + cacheDir.getName());
            } else {
                Slog.d(TAG, "Destroying unknown cache " + cacheDir.getName());
                FileUtils.deleteContentsAndDir(cacheDir);
            }
        }

标签:缓存,SystemProperties,OTA,fingerprint,cache,升级,cacheDir,ota,FileUtils
From: https://blog.51cto.com/u_16228977/7121896

相关文章

  • jenkins升级及重启
    1.官网下载war包http://www.jenkins.io/2.进入jenkins原本安装目录,找到jenkins.war,拷贝一份进行备份3.关闭jenkins服务windows10 1)只需要在访问jenkins服务器的网址url地址后加上/exit。如果在本地,则只需在浏览器地址栏内敲入http://localhost:8080/exit点击回车,就可以关......
  • 专访阿里云席明贤,视频云如何运用大模型与小模型来破茧升级2.0
    这是一篇人物专访,源自LiveVideoStack与阿里云视频云负责人席明贤(花名右贤)的对话。面对风云变幻的内外环境,阿里云在视频云赛道是坚定向前的,右贤没有回避多媒体当下行业面临的困难以及业务面临的挑战,作为多媒体圈的新人,他用了很多时间调研了解市场和客户,他坚定地选择ToB作为突破口,他......
  • unity中EulerAngles 和rotation的区别和联系
    unity中EulerAngles和rotation的区别和联系在Unity中,EulerAngles(欧拉角)和rotation(旋转)是用来表示游戏对象的旋转属性的两种方式。它们之间有一些区别和联系。表示方式:EulerAngles:欧拉角以角度的形式表示旋转,使用三个浮点数(X、Y、Z)来表示绕每个轴的旋转角度。rotation:旋转以四......
  • 嘉盛集团中文官网变更升级!
    近日FX110网了解到,嘉盛集团对其中文官网的网址和内容进行了变更和升级。升级后的嘉盛中文官网使用了全新的品牌设计视觉语言,更加流畅、布局更加清晰、功能和内容更加丰富和全面。在功能性方面,嘉盛官方网站升级后继续为用户提供各样功能。开设账户、填写表格,账户登录、管理账户资金......
  • bios在dos环境下升级的另类办法(ventory+freedos)
    首先下freedos,使用下到的iso(FD13LIVE.iso)将Bios升级文件(夹)注入到iso中(比如用ultraiso),并将iso复制到ventoy盘以legacy模式启动ventory,选择iso(不能用uefi)启动freedos,注入的文件和iso中其它文件一起,会自动挂载在D盘符输入D:换盘,按bios升级说明执行dos命令即可......
  • Tita 升级|产品细节体验优化
    功能一:企微试用版客户,超管用户增加一个【进入企微管理应用授权】的快捷入口Tita-OKR和新绩效一体化管理平台具体规则如图所示:功能二:KR负责人修改信息指数,支持目标O负责人收到提醒KR负责人≠O负责人,通知语:XXX将目标[XXXX]中关键结果[XXXXX]的信心指数由X分更......
  • applicationrunner用法 是一个方便的接口,可以用于在应用程序启动后执行一些逻辑,比如数
    applicationrunner用法原文链接:https://wenku.csdn.net/answer/d8f7f4398bc786e79ed79f09b540878fApplicationRunner是SpringBoot中的一个用于运行应用程序的类。它可以帮助你快速启动和运行你的应用程序,而不需要写很多代码。你可以通过实现ApplicationRunner接口并重写run方法......
  • CS:GO升级 Linux不再是“法外之地”
    在前天的VAC大规模封禁中,有不少Linux平台的作弊玩家也迎来了“迟到”的VAC封禁。一直以来,Linux就是VAC封禁的法外之地。虽然大部分玩家都使用Windows平台进行游戏。但实际上,使用Linux畅玩CS:GO的玩家也不在少数。以前V社主要打击Windows平台的玩家作弊。而Linux则成为了一......
  • 记录一个解决方法- 使用editableProTable表头筛选,无法重置,位置偏移
    问题如图:切换原始告警和收敛告警以后,由于二者用到同一个table,切换之后再点击筛选条件,则筛选框的位置发生偏移解决办法:给table一个key属性,改变table中的数据或者列时,去改变这个唯一的key,key值改变,table就可以重新渲染了!......
  • mysql 5.6 升级到 5.7 教程
    一、下载mysql5.7包  链接:https://pan.baidu.com/s/1ZBA1P6Yxq1clWS1ZZ9YzMw?pwd=yknx提取码:yknx 将下载文件解压后创建mysql.ini,并放入以下内容[mysqld]event_scheduler=onport=3306basedir=D:\mysql\XXXdatadir=D:\mysql\XXX\datamax_connection......