Android framwork一些常见的修改

Android framwork一些常见的修改

  1. 默认中文

    /build/target/product/core_base.mk
    PRODUCT_PROPERTY_OVERRIDES := \
        ro.config.notification_sound=OnTheHunt.ogg \
        ro.config.alarm_alert=Alarm_Classic.ogg \
    +    persist.sys.language=zh \
    +    persist.sys.country=CN
    
  2. 添加默认中文输入法(Google拼音)

    将下载的google拼音输入法放在\vendor\rockchip\common\apps\GooglePinyin\GooglePinyin.apk目录下,
    新建\vendor\rockchip\common\apps\GooglePinyin\Android.mk

    ###############################################################################
    # GooglePinyin
    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE := GooglePinyin
    LOCAL_MODULE_CLASS := APPS
    LOCAL_MODULE_TAGS := optional
    LOCAL_BUILT_MODULE_STEM := package.apk
    LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
    #LOCAL_PRIVILEGED_MODULE :=
    LOCAL_CERTIFICATE := PRESIGNED
    #LOCAL_OVERRIDES_PACKAGES :=
    LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
    #LOCAL_REQUIRED_MODULES :=
    #LOCAL_PREBUILT_JNI_LIBS :=
    include $(BUILD_PREBUILT)
    
    # vendor/rockchip/common
    
    diff --git a/apps/apps.mk b/apps/apps.mk
    index 258e65f..3e58184 100755
    --- a/apps/apps.mk
    +++ b/apps/apps.mk
    @@ -1,7 +1,8 @@
    
    PRODUCT_PACKAGES += \
    -    RKUpdateService
    +    RKUpdateService \
    +       GooglePinyin
    
    ifeq ($(strip $(TARGET_BOARD_HARDWARE)), rk30board)
    ifeq ($(strip $(TARGET_ARCH)), arm)
    
    # frameworks/base
    
    packages/SettingsProvider/res/values/defaults.xml
    diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
    index 94758c3..218a38a 100755
    --- a/packages/SettingsProvider/res/values/defaults.xml
    +++ b/packages/SettingsProvider/res/values/defaults.xml
    @@ -225,4 +225,6 @@
        1
        
        internal_storage
    +
    +    com.android.inputmethod.pinyin/.PinyinIME
    
    
    # frameworks/base
    
    packages/SettingsProvider/src/com/android/providers/settings//DatabaseHelper.java
    diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
    old mode 100644
    new mode 100755
    index 5e2114d..740ce6a
    --- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
    +++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
    @@ -2526,6 +2526,10 @@ class DatabaseHelper extends SQLiteOpenHelper {
    
                loadStringSetting(stmt, Settings.Secure.IMMERSIVE_MODE_CONFIRMATIONS,
                            R.string.def_immersive_mode_confirmations);
    +
    +            //add default input methods
    +            loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,
    +                        R.string.config_default_input_method);
                loadBooleanSetting(stmt, Settings.Secure.INSTALL_NON_MARKET_APPS,
                        R.bool.def_install_non_market_apps);
    
  3. 默认不休眠,不锁屏(将休眠时间设置为无限大[2^31-1])

    
    # framwork/base
    
    diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
    index f4cefc2..43ef213 100644
    --- a/packages/SettingsProvider/res/values/defaults.xml
    +++ b/packages/SettingsProvider/res/values/defaults.xml
    @@ -18,7 +18,7 @@
    -->
    
        true
    -    60000
    +    2147483647
        -1
        false
        false
    @@ -80,7 +80,7 @@
        /system/media/audio/ui/Trusted.ogg
        /system/media/audio/ui/WirelessChargingStarted.ogg
    
    -    false
    +    true
        false
        1
    
    
  4. 屏幕物理方向修改

    修改device/rockchip/rk3399/(所选lunch目录)/system.prop

    # 0 90 180 270
    ro.sf.hwrotation=90
    
  5. 屏幕密度修改

    修改device/rockchip/rk3399/(所选lunch目录)/system.prop

    ro.sf.lcd_density=160
    
  6. 去除StatusBar或者NavigatorBar

    # frameworks/base/packages/SystemUI
    
    diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
    old mode 100644
    new mode 100755
    diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
    old mode 100644
    new mode 100755
    diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
    index f55d1f7..3682cb0 100755
    --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
    +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
    @@ -41,6 +41,7 @@ import android.app.IActivityManager;
    import android.app.Notification;
    import android.app.PendingIntent;
    import android.app.StatusBarManager;
    +import android.app.AlarmManager;
    import android.content.BroadcastReceiver;
    import android.content.ComponentCallbacks2;
    import android.content.ComponentName;
    @@ -285,6 +286,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
        */
        private static final int REMOTE_INPUT_KEPT_ENTRY_AUTO_CANCEL_DELAY = 200;
    
    +    private static final String ACTION_NAVIGATION_BAR = "com.android.NavigationBarReceiver";
        /**
        * Never let the alpha become zero for surfaces that draw with SRC - otherwise the RenderNode
        * won't draw anything and uninitialized memory will show through*/
    @@ -1013,6 +1016,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
            filter.addAction(Intent.ACTION_SCREEN_OFF);
            filter.addAction(Intent.ACTION_SCREEN_ON);
            filter.addAction(DevicePolicyManager.ACTION_SHOW_DEVICE_MONITORING_DIALOG);
    +        filter.addAction(ACTION_NAVIGATION_BAR);
            context.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL, filter, null, null);
    
            IntentFilter demoFilter = new IntentFilter();
    @@ -3667,6 +3672,20 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
                }
                else if (DevicePolicyManager.ACTION_SHOW_DEVICE_MONITORING_DIALOG.equals(action)) {
                    mQSPanel.showDeviceMonitoringDialog();
    +            }else if (ACTION_NAVIGATION_BAR.equals(action)){
    +                try {
    +                    boolean show = intent.getBooleanExtra("show", true);
    +                    if (show) {
    +                        displaySystemUI();
    +                    } else {
    +                        hideSystemUI();
    +                    }
    +                } catch (Exception e) {
    +                    e.printStackTrace();
    +                }
                }
            }
        };
    @@ -5296,4 +5315,31 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
                }
            }
        }
    +
    +    public void hideSystemUI() {
    +        if (mNavigationBarView != null && mNavigationBarView.isAttachedToWindow()) {
    +            mWindowManager.removeViewImmediate(mNavigationBarView);
    +            mNavigationBarView = null;
    +        }
    +
    +         if (mStatusBarWindow != null && mStatusBarWindow.isAttachedToWindow()) {
    +             getBouncerContainer().setVisibility(View.GONE);
    +         }
    +    }
    +
    +    public void displaySystemUI() {
    +        if (mNavigationBarView == null) {
    +            mHandler.post(new Runnable() {
    +                @Override
    +                public void run() {
    +                    final Context context = mContext;
    +                    createNavigationBarView(context);
    +                    addNavigationBar();
    +                }
    +            });
    +        }
    +
    +        if (mStatusBarWindow != null && mStatusBarWindow.isAttachedToWindow()) {
    +            getBouncerContainer().setVisibility(View.VISIBLE);
    +        }
    +    }
    }
    
  7. 系统默认时间修改(一般默认为1970年)

    # frameworks/base
    
    diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
    old mode 100644
    new mode 100755
    index 393f062..0d16f48
    --- a/services/java/com/android/server/SystemServer.java
    +++ b/services/java/com/android/server/SystemServer.java
    @@ -123,11 +123,13 @@ public final class SystemServer {
    
        // The earliest supported time.  We pick one day into 1970, to
        // give any timezone code room without going into negative time.
    -    private static final long EARLIEST_SUPPORTED_TIME = 86400 * 1000;
    +    // private static final long EARLIEST_SUPPORTED_TIME = 86400 * 1000;
    +    // The earliest supported time change to 2018/09/01 1358473528234
    +    private static final long EARLIEST_SUPPORTED_TIME = 1535760000000L;
    
        /*
    -     * Implementation class names. TODO: Move them to a codegen class or load
    -     * them from the build system somehow.
    +     * Implementation class names. TODO: Move them to a codegen class or load them
    +     * from the build system somehow.
        */
        private static final String BACKUP_MANAGER_SERVICE_CLASS =
                "com.android.server.backup.BackupManagerService$Lifecycle";
    @@ -235,14 +237,7 @@ public final class SystemServer {
        private void run() {
            try {
                Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "InitBeforeStartServices");
    -            // If a device's clock is before 1970 (before 0), a lot of
    -            // APIs crash dealing with negative numbers, notably
    -            // java.io.File#setLastModified, so instead we fake it and
    -            // hope that time from cell towers or NTP fixes it shortly.
    -            if (System.currentTimeMillis() < EARLIEST_SUPPORTED_TIME) {
    -                Slog.w(TAG, "System clock is before 1970; setting to 1970.");
    -                SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME);
    -            }
    +
    
                // If the system has "persist.sys.language" and friends set, replace them with
                // "persist.sys.locale". Note that the default locale at this point is calculated
    @@ -341,6 +336,20 @@ public final class SystemServer {
                startBootstrapServices();
                startCoreServices();
                startOtherServices();
    +
    +            // If a device's clock is before 1970 (before 0), a lot of
    +            // APIs crash dealing with negative numbers, notably
    +            // java.io.File#setLastModified, so instead we fake it and
    +            // hope that time from cell towers or NTP fixes it shortly.
    +            Slog.w(TAG, "System.currentTimeMillis(): " + System.currentTimeMillis() + " EARLIEST_SUPPORTED_TIME: "
    +                    + EARLIEST_SUPPORTED_TIME);
    +            if (System.currentTimeMillis() < EARLIEST_SUPPORTED_TIME) {
    +                Slog.w(TAG, "System clock is before 2018; setting to 2018.");
    +                SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME);
    +            }
    +
    +            Slog.w(TAG, "System.currentTimeMillis(): " + System.currentTimeMillis() + " EARLIEST_SUPPORTED_TIME: "
    +                    + EARLIEST_SUPPORTED_TIME);
            } catch (Throwable ex) {
                Slog.e("System", "******************************************");
                Slog.e("System", "************ Failure starting system services", ex);
    
  8. 修改开机Launcher为自己的app

    # /frameworks/base/services
    
    diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
    index 9fbd87d..621db11 100755
    --- a/services/core/java/com/android/server/am/ActivityManagerService.java
    +++ b/services/core/java/com/android/server/am/ActivityManagerService.java
    @@ -4082,6 +4082,25 @@ public final class ActivityManagerService extends ActivityManagerNative
            Intent intent = getHomeIntent();
            ActivityInfo aInfo = resolveActivityInfo(intent, STOCK_PM_FLAGS, userId);
            if (aInfo != null) {
    +
    +            //add eyesdetector launcher start
    +            PackageManager pm = mContext.getPackageManager();
    +            Intent newintent = new Intent(Intent.ACTION_MAIN);
    +            newintent.addCategory(Intent.CATEGORY_HOME);
    +
    +            List resolveInfoList = pm.queryIntentActivities(newintent, 0);
    +            //判断带有Intent.CATEGORY_HOME标签的所有activity中如果有你指定的activity则替换
    +            if(resolveInfoList != null){
    +                int size = resolveInfoList.size();
    +                for(int i = 0; i < size; i++){
    +                    ResolveInfo rInfo = resolveInfoList.get(i);
    +                    if(rInfo.activityInfo.name.equals("com.qytech.eyesdetector.home.MainActivity")){
    +                        aInfo = rInfo.activityInfo;
    +                        break;
    +                    }
    +                }
    +            }
    +            //add eyesdetector launcher stop
    +
                intent.setComponent(new ComponentName(aInfo.applicationInfo.packageName, aInfo.name));
                // Don't do this if the home app is currently being
                // instrumented.
    
  9. 取消usb授权弹窗

    # frameworks/base/packages/SystemUI
    
    diff --git a/packages/SystemUI/src/com/android/systemui/usb/UsbPermissionActivity.java b/packages/SystemUI/src/com/android/systemui/usb/UsbPermissionActivity.java
    old mode 100644
    new mode 100755
    index 1e69fc5..ec61b66
    --- a/packages/SystemUI/src/com/android/systemui/usb/UsbPermissionActivity.java
    +++ b/packages/SystemUI/src/com/android/systemui/usb/UsbPermissionActivity.java
    @@ -110,8 +110,9 @@ public class UsbPermissionActivity extends AlertActivity
                                                        com.android.internal.R.id.clearDefaultHint);
            mClearDefaultHint.setVisibility(View.GONE);
    
    -        setupAlert();
    -
    +        //setupAlert();
    +        mPermissionGranted = true;
    +        finish();
        }
    
  10. 默认允许安装不是从应用市场下载的apk

    # frameworks/base
    
    diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml
    index 43ef213..3667b36 100755
    --- a/packages/SettingsProvider/res/values/defaults.xml
    +++ b/packages/SettingsProvider/res/values/defaults.xml
    @@ -38,7 +38,7 @@
    
        false
        false
    -    false
    +    true
        true
        
                        

你可能感兴趣的:(Android framwork一些常见的修改)