Android9判断第一次启动或者ota升级后第一次启动

将是否第一次启动状态写入系统属性persist.sys.isfirstboot,其他地方获取属性值判断是否第一次启动。

    frameworks/base/services/java/com/android/server/SystemServer.java
    private void startBootstrapServices() {
    Slog.i(TAG, "Reading configuration...");mFirstBoot = mPackageManagerService.isFirstBoot();
    mFirstBoot = mPackageManagerService.isFirstBoot();
+    if(isFirstBootOrUpgrade()){
+       SystemProperties.set("persist.sys.isfirstboot","1");
+         Slog.w(TAG, "isFirstBootOrUpgrade");
+     }else{
+        SystemProperties.set("persist.sys.isfirstboot","0");
+     }
    mPackageManager = mSystemContext.getPackageManager();

private boolean isFirstBootOrUpgrade() {
    return mPackageManagerService.isFirstBoot() || mPackageManagerService.isUpgrade();
}

在c++代码中使用,例子如下:

   #include <cutils/properties.h>
    char isfirstboot[PROPERTY_VALUE_MAX] = { 1 };
    property_get("persist.sys.isfirstboot", isfirstboot, "");
    if ( strcmp(isfirstboot,"1") == 0){
        xxxx
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值