zoukankan      html  css  js  c++  java
  • android设置系统默认开机时间

    1.设置RTC时间,该时间是如果RCT时钟断电以后使用的默认时间

    Android L之前:

    alpsmediatekcustom[project]preloader inccust_rtc.h

    alpsmediatekcustom[project]kernel tc tc tc-mt65XX.h

    Android L或M:

    bootableootloaderpreloadercustom [project] inc cust_rtc.h

    #define RTC_DEFAULT_YEA 2019

    #define RTC_DEFAULT_MTH 7

    #define RTC_DEFAULT_DOM 1

    2、修改默认日期:

    frameworkservicesjavacomandroidserverNetworkTimeUpdateService.java

    /** Initialize the receivers and initiate the first NTP request */
        public void systemReady() {
            registerForTelephonyIntents();
            registerForAlarms();
            registerForConnectivityIntents();
    
            mThread = new HandlerThread(TAG);
            mThread.start();
            mHandler = new MyHandler(mThread.getLooper());
            // Check the network time on the new thread
            mHandler.obtainMessage(EVENT_POLL_NETWORK_TIME).sendToTarget();
    
            mSettingsObserver = new SettingsObserver(mHandler, EVENT_AUTO_TIME_CHANGED);
            mSettingsObserver.observe(mContext);
            
            /// M: comment @{ add GPS Time Sync Service
            Log.d(TAG, "add GPS time sync handler and looper");
            mGpsThread = new HandlerThread(TAG);
            mGpsThread.start();
            mGpsHandler = new MyHandler(mGpsThread.getLooper());
            
            mGpsTimeSyncObserver = new GpsTimeSyncObserver(mGpsHandler, EVENT_GPS_TIME_SYNC_CHANGED);
            mGpsTimeSyncObserver.observe(mContext);
            /// @}
            
            /// M: Configure default date/time to current year after factory reset or first bootup @{ 
            String icsString = SystemProperties.get(ICS_BOOT_SYS_PROPERTY, "");
            boolean isIcsVersion = (icsString != null && "".equals(icsString)) ? false : true;
            if(isIcsVersion){
               return;
            }
            
            mDefaultYear  = mContext.getResources().getInteger(com.mediatek.internal.R.integer.default_restore_year);
            mIsOverMobile = mContext.getResources().getBoolean(com.mediatek.internal.R.bool.config_ntp_by_mobile);
            
            String tempString = SystemProperties.get(BOOT_SYS_PROPERTY, "");
            boolean isFirstBoot = (tempString != null && "".equals(tempString)) ? true : false;
            if(isFirstBoot){
               tempString = SystemProperties.get("ro.kernel.qemu", "");
               boolean isEmulator = "1".equals(tempString) ? true : false;
               if(isEmulator){
                  Log.d(TAG, "isEmulator:" + tempString);
                  return;
               }
    
               String decryptState = SystemProperties.get("vold.decrypt", "");
               Log.d(TAG, "decryptState:" + decryptState);
               if("".equals(decryptState) || DECRYPT_STATE.equals(decryptState)){
                  Time today = new Time(Time.getCurrentTimezone());
                  today.setToNow();
                  Log.d(TAG, "First boot:" + tempString + " with date:" + today);
                  //today.set(today.monthDay, today.month, mDefaultYear);
                  today.set(1, 7, mDefaultYear);//2019.7.1
                  Log.d(TAG, "Set the year to " + mDefaultYear);
                         SystemProperties.set(BOOT_SYS_PROPERTY, "false");
                     SystemClock.setCurrentTimeMillis(today.toMillis(false));
                  }
               }
            ///@}
        }
    

      

    在mediatekframeworksase es esvaluesconfig.xml里修改

    <integer name="default_restore_year">2019</integer>

  • 相关阅读:
    ASE19 团队项目 模型组 scrum report集合
    ASE19团队项目alpha阶段model组 scrum2 记录
    ASE19团队项目alpha阶段model组 scrum1 记录
    ASE第二次结对编程——Code Search
    jdk中集成的jre和单独安装的jre有什么区别?
    window, linux, mac 比较文件和文件夹的区别
    Java 调用python、ruby 等脚本引擎
    微软软件工程 第一周博客作业
    绩效考核(2018.5.28~2018.6.3)
    数据库需求文档
  • 原文地址:https://www.cnblogs.com/suxiaoqi/p/11189086.html
Copyright © 2011-2022 走看看