欢迎光临
我们一直在努力

Android Framework新设备超详细基础功能定制

文章目录

  • 修改分区大小
    • 展锐
    • MTK
  • 时区
  • 语言
  • density
  • 开机动画与Logo
    • mtk
    • 展锐
  • 默认关闭屏保
  • 默认不锁屏
  • 蓝牙
    • 请求打开蓝牙时,自动确认
    • 蓝牙配对不弹窗,直接确认
  • 状态栏、导航栏隐藏
    • 禁用下拉栏
  • 壁纸
    • 通用修改方法
    • MTK修改方法
  • 音量
    • 不显示音量条
    • 音量最大等级
  • 电话
    • 禁止未接电话通知
  • 自动关机窗口
  • 通知
    • 屏蔽短信通知
  • Android相关专栏

修改分区大小

烧录原厂固件,查看各分区大小,判断是否要修改分区大小.

展锐

安卓4.4, Android8.0 比如修改system分区从350M改为1536M, 1536x1024x1024=1610612736 在device目录下

  • 搜索并修改.mk文件中的BOARD_SYSTEMIMAGE_PARTITION_SIZE 一般是BoardConfig.mk
  • -BOARD_SYSTEMIMAGE_PARTITION_SIZE := 367001600
    +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736

  • 搜索并修改.xml文件中的 一般是不同cpu文件名不同,跟项目相关
  • – <Partition id="system" size="350"/>
    + <Partition id="system" size="1536"/>

    MTK

    Android8.0 只要修改BoardConfig.mk,不需要修改xml 比如

    -BOARD_MTK_SYSTEM_SIZE_KB := 1253376
    +BOARD_MTK_SYSTEM_SIZE_KB := 1553568

    时区

    时区(Timezone)

    • 在buildinfo.sh 中用echo方法来设置 build/make/tools/buildinfo.sh

    echo "persist.sys.timezone=Asia/Shanghai"

    • 在xx.mk中用PRODUCT_PROPERTY_OVERRIDES 来设置
    • 在xx.mk 中用ADDITIONAL_BUILD_PROPERTIES 来设置

    语言

    在设备中查看语言

    getprop ro.product.locale
    [ro.product.locale]: [en-US]

    修改 build/target/product/full_base.mk 文件

    # Put en_US first in the list, so make it default.
    #PRODUCT_LOCALES := en_US
    PRODUCT_LOCALES := zh_CN

    mtk单改上面不行,需要额外修改

    diff –git a/build/make/tools/buildinfo.sh b/build/make/tools/buildinfo.sh
    index 51c834c072..40546e28be 100755
    — a/build/make/tools/buildinfo.sh
    +++ b/build/make/tools/buildinfo.sh
    @@ -30,6 +30,8 @@ fi
    echo "ro.version.software=0.0.0.1"
    echo "persist.sys.timezone=Asia/Shanghai"
    +echo "persist.sys.locale=zh-CN"
    +echo "ro.product.locale=zh-CN"

    # These values are deprecated, use "ro.product.cpu.abilist"
    # instead (see below).
    @@ -43,9 +45,9 @@ echo "ro.product.cpu.abilist=$TARGET_CPU_ABI_LIST"
    echo "ro.product.cpu.abilist32=$TARGET_CPU_ABI_LIST_32_BIT"
    echo "ro.product.cpu.abilist64=$TARGET_CPU_ABI_LIST_64_BIT"

    -if [ -n "$PRODUCT_DEFAULT_LOCALE" ] ; then
    echo "ro.product.locale=$PRODUCT_DEFAULT_LOCALE"
    -fi
    +#if [ -n "$PRODUCT_DEFAULT_LOCALE" ] ; then
    +# echo "ro.product.locale=$PRODUCT_DEFAULT_LOCALE"
    +#fi
    echo "ro.wifi.channels=$PRODUCT_DEFAULT_WIFI_CHANNELS"

    echo "# ro.build.product is obsolete; use ro.product.device"
    diff –git a/device/mediateksample/mt8766_bn_a3m/device.mk b/device/mediateksample/mt8766_bn_a3m/device.mk
    # instead (see below).
    @@ -43,9 +45,9 @@ echo "ro.product.cpu.abilist=$TARGET_CPU_ABI_LIST"
    echo "ro.product.cpu.abilist32=$TARGET_CPU_ABI_LIST_32_BIT"
    echo "ro.product.cpu.abilist64=$TARGET_CPU_ABI_LIST_64_BIT"

    -if [ -n "$PRODUCT_DEFAULT_LOCALE" ] ; then
    echo "ro.product.locale=$PRODUCT_DEFAULT_LOCALE"
    -fi
    +#if [ -n "$PRODUCT_DEFAULT_LOCALE" ] ; then
    +# echo "ro.product.locale=$PRODUCT_DEFAULT_LOCALE"
    +#fi

    PRODUCT_LOCALES把zh_CN放最前面

    diff –git a/device/mediateksample/mt8766/vnd_mt8766.mk b/device/mediateksample/mt8766/vnd_mt8766.mk
    index 0a3d352da2..cc3b2fe441 100644
    — a/device/mediateksample/mt8766/vnd_mt8766.mk
    +++ b/device/mediateksample/mt8766/vnd_mt8766.mk
    @@ -15,7 +15,7 @@ ifndef SYS_TARGET_PROJECT
    PRODUCT_BUILD_SYSTEM_IMAGE := false
    PRODUCT_BUILD_PRODUCT_IMAGE := false
    endif
    -PRODUCT_LOCALES := en_US zh_CN zh_TW es_ES pt_BR ru_RU fr_FR de_DE tr_TR vi_VN ms_MY in_ID th_TH it_IT ar_EG hi_IN bn_IN ur_PK fa_IR pt_PT nl_NL el_GR hu_HU tl_PH ro_RO cs_CZ ko_KR km_KH iw_IL my_MM pl_PL es_US
    bg_BG hr_HR lv_LV lt_LT sk_SK uk_UA de_AT da_DK fi_FI nb_NO sv_SE en_GB hy_AM zh_HK et_EE ja_JP kk_KZ sr_RS sl_SI ca_ES
    +PRODUCT_LOCALES := zh_CN en_US zh_TW es_ES pt_BR ru_RU fr_FR de_DE tr_TR vi_VN ms_MY in_ID th_TH it_IT ar_EG hi_IN bn_IN ur_PK fa_IR pt_PT nl_NL el_GR hu_HU tl_PH ro_RO cs_CZ ko_KR km_KH iw_IL my_MM pl_PL es_US
    bg_BG hr_HR lv_LV lt_LT sk_SK uk_UA de_AT da_DK fi_FI nb_NO sv_SE en_GB hy_AM zh_HK et_EE ja_JP kk_KZ sr_RS sl_SI ca_ES

    $ settings list system | grep locale
    system_locales=en-US

    $ getprop | grep locale
    [persist.sys.locale]: [en-US]
    [ro.product.locale]: [en-US]

    展锐

    diff –git a/build/make/target/product/languages_default.mk b/build/make/target/product/languages_default.mk
    index a13a23c5695..ee4f58f30ab 100644
    — a/build/make/target/product/languages_default.mk
    +++ b/build/make/target/product/languages_default.mk
    @@ -17,6 +17,7 @@
    # This is a build configuration that just contains a list of languages, with
    # en_US set as the default language.
    PRODUCT_LOCALES := \\
    + zh_CN \\
    en_US \\
    af_ZA \\
    am_ET \\
    @@ -99,7 +100,6 @@ PRODUCT_LOCALES := \\
    ur_PK \\
    uz_UZ \\
    vi_VN \\
    – zh_CN \\
    zh_HK \\
    zh_TW \\
    zu_ZA \\

    density

    device/xx/xx/module/display/md.mk 或者 device/mediateksample/mtxx/device.mk

    ro.sf.lcd_density=

    开机动画与Logo

    mtk

    device/mediateksample/xxxx/device.mk

    #custom logo
    $(shell rm -rf vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/out ; mkdir vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/out)
    ifneq ($(shell find vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/ -name $(BOOT_LOGO)),)
    $(shell cp -rf vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/$(BOOT_LOGO) vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/out/)
    ifneq ($(shell find device/mediateksample/$(MTK_TARGET_PROJECT)/ -name custom),)
    ifneq ($(shell find device/mediateksample/$(MTK_TARGET_PROJECT)/custom/ -name logo),)
    ifneq ($(shell find device/mediateksample/$(MTK_TARGET_PROJECT)/custom/logo/ -name $(BOOT_LOGO)),)
    $(shell cp -rf device/mediateksample/$(MTK_TARGET_PROJECT)/custom/logo/$(BOOT_LOGO)/* vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/out/$(BOOT_LOGO)/)
    endif
    endif
    endif
    else
    $(error projectconfig.mk BOOT_LOGO Setting error, Noexist! )
    endif

    #custom animation

    ifneq ($(wildcard device/mediateksample/$(MTK_TARGET_PROJECT)/custom/bootanim),)
    ifneq ($(shell find device/mediateksample/$(MTK_TARGET_PROJECT)/custom/bootanim -name bootanimation.zip),)
    PRODUCT_COPY_FILES += device/mediateksample/$(MTK_TARGET_PROJECT)/custom/bootanim/bootanimation.zip:system/media/bootanimation.zip
    else
    PRODUCT_COPY_FILES += ../teksun/common/bootanim/$(BOOT_LOGO)/bootanimation.zip:system/media/bootanimation.zip
    endif
    ifneq ($(shell find device/mediateksample/$(MTK_TARGET_PROJECT)/custom/bootanim -name bootaudio.mp3),)
    PRODUCT_COPY_FILES += device/mediateksample/$(MTK_TARGET_PROJECT)/custom/bootanim/bootaudio.mp3:system/media/bootaudio.mp3
    endif
    ifneq ($(shell find device/mediateksample/$(MTK_TARGET_PROJECT)/custom/bootanim -name shutanimation.zip),)
    PRODUCT_COPY_FILES += device/mediateksample/$(MTK_TARGET_PROJECT)/custom/bootanim/shutanimation.zip:system/media/shutanimation.zip
    endif
    ifneq ($(shell find device/mediateksample/$(MTK_TARGET_PROJECT)/custom/bootanim -name shutdownanimation.zip),)
    PRODUCT_COPY_FILES += device/mediateksample/$(MTK_TARGET_PROJECT)/custom/bootanim/shutdownanimation.zip:system/media/shutanimation.zip
    endif
    ifneq ($(shell find device/mediateksample/$(MTK_TARGET_PROJECT)/custom/bootanim -name shutaudio.mp3),)
    PRODUCT_COPY_FILES += device/mediateksample/$(MTK_TARGET_PROJECT)/custom/bootanim/shutaudio.mp3:system/media/shutaudio.mp3
    endif
    else
    PRODUCT_COPY_FILES += ../teksun/common/bootanim/$(BOOT_LOGO)/bootanimation.zip:system/media/bootanimation.zip
    endif

    展锐

    device/sprd/mpool/module/product/main.mk

    ifneq ($(wildcard device/sprd/$(CHIP_NAME)/$(TARGET_BOARD)/custom/bootanim),)
    ifneq ($(shell find device/sprd/$(CHIP_NAME)/$(TARGET_BOARD)/custom/bootanim -name bootanimation.zip),)
    PRODUCT_COPY_FILES += device/sprd/$(CHIP_NAME)/$(TARGET_BOARD)/custom/bootanim/bootanimation.zip:product/media/bootanimation.zip
    endif

    ifneq ($(shell find device/sprd/$(CHIP_NAME)/$(TARGET_BOARD)/custom/bootanim -name bootsound.mp3),)
    PRODUCT_COPY_FILES += device/sprd/$(CHIP_NAME)/$(TARGET_BOARD)/custom/bootanim/bootsound.mp3:product/media/bootsound.mp3
    endif

    ifneq ($(shell find device/sprd/$(CHIP_NAME)/$(TARGET_BOARD)/custom/bootanim -name shutdownanimation.zip),)
    PRODUCT_COPY_FILES += device/sprd/$(CHIP_NAME)/$(TARGET_BOARD)/custom/bootanim/shutdownanimation.zip:product/media/shutdownanimation.zip
    endif

    ifneq ($(shell find device/sprd/$(CHIP_NAME)/$(TARGET_BOARD)/custom/bootanim -name shutdownsound.mp3),)
    PRODUCT_COPY_FILES += device/sprd/$(CHIP_NAME)/$(TARGET_BOARD)/custom/bootanim/shutdownsound.mp3:product/media/shutdownsound.mp3
    endif
    endif

    默认关闭屏保

    diff –git a/frameworks/base/core/res/res/values/config.xml b/frameworks/base/core/res/res/values/config.xml
    index 819a5442fea..b27a9185558 100755
    — a/frameworks/base/core/res/res/values/config.xml
    +++ b/frameworks/base/core/res/res/values/config.xml
    @@ -2390,7 +2390,7 @@
    <bool name="config_dreamsSupported">true</bool>

    <!– If supported, are dreams enabled? (by default) –>
    <bool name="config_dreamsEnabledByDefault">true</bool>
    + <bool name="config_dreamsEnabledByDefault">false</bool>
    <!– If supported and enabled, are dreams activated when docked? (by default) –>
    <bool name="config_dreamsActivatedOnDockByDefault">false</bool>
    <!– If supported and enabled, are dreams activated when asleep and charging? (by default) –>

    默认不锁屏

    diff –git a/frameworks/base/core/res/res/values/config.xml b/frameworks/base/core/res/res/values/config.xml
    index 23a4d032247..beeceba6428 100644
    — a/frameworks/base/core/res/res/values/config.xml
    +++ b/frameworks/base/core/res/res/values/config.xml
    @@ -1223,7 +1223,7 @@
    <bool name="config_enable_emergency_call_while_sim_locked">true</bool>

    <!– Is the lock-screen disabled for new users by default –>
    <bool name="config_disableLockscreenByDefault">false</bool>
    + <bool name="config_disableLockscreenByDefault">true</bool>

    <!– If true, enables verification of the lockscreen credential in the factory reset protection
    flow. This should be true if gatekeeper / weaver credentials can still be checked after a
    diff –git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
    index 636b7728651..fbd325615df 100644
    — a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
    +++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
    @@ -82,7 +82,7 @@
    <integer name="def_max_sound_trigger_detection_service_ops_per_day" translatable="false">1000</integer>
    <integer name="def_sound_trigger_detection_service_op_timeout" translatable="false">15000</integer>

    <bool name="def_lockscreen_disabled">false</bool>
    + <bool name="def_lockscreen_disabled">true</bool>
    <bool name="def_device_provisioned">false</bool>
    <integer name="def_dock_audio_media_enabled">1</integer>

    蓝牙

    请求打开蓝牙时,自动确认

    packages/apps/Settings/res/values/config.xml 将auto_confirm_bluetooth_activation_dialog设置为true

    diff –git a/packages/apps/Settings/res/values/config.xml b/packages/apps/Settings/res/values/config.xml
    index 746d3e7d85..b772e2de0f 100755
    — a/packages/apps/Settings/res/values/config.xml
    +++ b/packages/apps/Settings/res/values/config.xml
    @@ -261,7 +261,7 @@

    <!– Whether the bluetooth activation confirmation dialogs should be auto dismissed.
    Can be overridden for specific product builds. –>

    <bool name="auto_confirm_bluetooth_activation_dialog">false</bool>
    + <bool name="auto_confirm_bluetooth_activation_dialog">true</bool>

    蓝牙配对不弹窗,直接确认

    mtk

    diff –git a/packages/apps/Settings/src/com/android/settings/bluetooth/BluetoothPairingRequest.java b/packages/apps/Settings/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
    index 4d02fd50c3..37a1f58442 100644
    — a/packages/apps/Settings/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
    +++ b/packages/apps/Settings/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
    @@ -38,6 +38,7 @@ public final class BluetoothPairingRequest extends BroadcastReceiver {
    if (!action.equals(BluetoothDevice.ACTION_PAIRING_REQUEST)) {
    return;
    }
    + /*
    // convert broadcast intent into activity intent (same action string)
    Intent pairingIntent = BluetoothPairingService.getPairingDialogIntent(context, intent);

    @@ -58,5 +59,11 @@ public final class BluetoothPairingRequest extends BroadcastReceiver {
    intent.setClass(context, BluetoothPairingService.class);
    context.startServiceAsUser(intent, UserHandle.CURRENT);
    }
    + */
    + /*
    + * 跳过对话框 直接点击确定按键的逻辑
    + */
    + BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
    + device.setPairingConfirmation(true);
    }
    }
    diff –git a/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/bluetooth/BluetoothPairingRequest.java b/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
    index 4d02fd50c3..37a1f58442 100644
    — a/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
    +++ b/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
    @@ -38,6 +38,7 @@ public final class BluetoothPairingRequest extends BroadcastReceiver {
    if (!action.equals(BluetoothDevice.ACTION_PAIRING_REQUEST)) {
    return;
    }
    + /*
    // convert broadcast intent into activity intent (same action string)
    Intent pairingIntent = BluetoothPairingService.getPairingDialogIntent(context, intent);

    @@ -58,5 +59,11 @@ public final class BluetoothPairingRequest extends BroadcastReceiver {
    intent.setClass(context, BluetoothPairingService.class);
    context.startServiceAsUser(intent, UserHandle.CURRENT);
    }
    + */
    + /*
    + * 跳过对话框 直接点击确定按键的逻辑
    + */
    + BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
    + device.setPairingConfirmation(true);
    }
    }

    状态栏、导航栏隐藏

    diff –git a/frameworks/base/core/res/res/values/dimens.xml b/frameworks/base/core/res/res/values/dimens.xml
    index de7a1175b4a..bd12bc4ac26 100644
    — a/frameworks/base/core/res/res/values/dimens.xml
    +++ b/frameworks/base/core/res/res/values/dimens.xml
    @@ -43,16 +43,16 @@
    <dimen name="status_bar_height">@dimen/status_bar_height_portrait</dimen>
    <!– Height of the status bar in portrait. The height should be
    Max((status bar content height + waterfall top size), top cutout size) –>

    <dimen name="status_bar_height_portrait">24dp</dimen>
    + <dimen name="status_bar_height_portrait">0dp</dimen>
    <!– Height of the status bar in landscape. The height should be
    Max((status bar content height + waterfall top size), top cutout size) –>

    <dimen name="status_bar_height_landscape">@dimen/status_bar_height_portrait</dimen>
    <!– Height of area above QQS where battery/time go –>
    <dimen name="quick_qs_offset_height">48dp</dimen>
    <!– Height of the bottom navigation / system bar. –>
    <dimen name="navigation_bar_height">48dp</dimen>
    + <dimen name="navigation_bar_height">0dp</dimen>
    <!– Height of the bottom navigation bar in portrait; often the same as @dimen/navigation_bar_height –>
    <dimen name="navigation_bar_height_landscape">48dp</dimen>
    + <dimen name="navigation_bar_height_landscape">0dp</dimen>
    <!– Width of the navigation bar when it is placed vertically on the screen –>
    <dimen name="navigation_bar_width">48dp</dimen>
    <!– How much we expand the touchable region of the status bar below the notch to catch touches

    diff git a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
    old mode 100644
    new mode 100755
    index 68d15936e4..c6ab3a2774
    a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
    +++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
    @@ 222,7 +222,8 @@ public class PhoneStatusBarView extends PanelBar {
    }
    }

    return barConsumedEvent || super.onTouchEvent(event);
    + //return barConsumedEvent || super.onTouchEvent(event);
    + return true;
    }

    @Override
    diff git a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
    old mode 100644
    new mode 100755
    index 924614b02d..59767063bf
    a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
    +++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
    @@ 1317,7 +1317,7 @@ public class StatusBar extends SystemUI implements DemoMode,
    mNotificationPanelViewController.setHeadsUpManager(mHeadsUpManager);
    mNotificationLogger.setHeadsUpManager(mHeadsUpManager);

    createNavigationBar(result);
    + //createNavigationBar(result);

    if (ENABLE_LOCKSCREEN_WALLPAPER && mWallpaperSupported) {
    mLockscreenWallpaper = mLockscreenWallpaperLazy.get();

    禁用下拉栏

    在StatusBarManager的disable函数中添加what = what | DISABLE_EXPAND;

    diff git a/frameworks/base/core/java/android/app/StatusBarManager.java b/frameworks/base/core/java/android/app/StatusBarManager.java
    index 1329fa45bb..e4da4a3593 100644
    a/frameworks/base/core/java/android/app/StatusBarManager.java
    +++ b/frameworks/base/core/java/android/app/StatusBarManager.java
    @@ 230,6 +230,7 @@ public class StatusBarManager {
    */
    @UnsupportedAppUsage
    public void disable(int what) {
    + what = what | DISABLE_EXPAND; // 禁用下拉栏
    try {
    final int userId = Binder.getCallingUserHandle().getIdentifier();
    final IStatusBarService svc = getService();

    改完后代码如下

    /**
    * Disable some features in the status bar. Pass the bitwise-or of the DISABLE_* flags.
    * To re-enable everything, pass {@link #DISABLE_NONE}.
    *
    * @hide
    */

    @UnsupportedAppUsage
    public void disable(int what) {
    what = what | DISABLE_EXPAND; // 禁用下拉栏
    try {
    final int userId = Binder.getCallingUserHandle().getIdentifier();
    final IStatusBarService svc = getService();
    if (svc != null) {
    svc.disableForUser(what, mToken, mContext.getPackageName(), userId);
    }
    } catch (RemoteException ex) {
    throw ex.rethrowFromSystemServer();
    }
    }

    壁纸

    Android 的默认壁纸通常由 frameworks/base/core/res/res/ 中的资源定义。但不同厂商(包括 MTK)可能有自己的覆盖机制。 常见文件名: default_wallpaper.jpg wallpaper.png default_wallpaper.png 有时是 default_wallpaper_*.jpg(如 default_wallpaper_480p.jpg)

    通用修改方法

    替换以下几个图片

    frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png
    frameworks/base/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.png
    frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.png

    MTK修改方法

    mtk android8

    frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg

    mtk android11

    device/mediatek/system/common/overlay/ago/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg

    音量

    不显示音量条

    删除com.android.systemui.volume.VolumeUI值就可以。

    • mtk vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml

    diff –git a/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml b/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml
    index 848cdb1e83..3a9af8ca45 100644
    — a/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml
    +++ b/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml
    @@ -284,7 +284,7 @@
    <item>com.android.systemui.util.NotificationChannels</item>
    <item>com.android.systemui.keyguard.KeyguardViewMediator</item>
    <item>com.android.systemui.recents.Recents</item>
    <item>com.android.systemui.volume.VolumeUI</item>
    + <!– <item>com.android.systemui.volume.VolumeUI</item> –>
    <item>com.android.systemui.stackdivider.Divider</item>
    <item>com.android.systemui.statusbar.phone.StatusBar</item>
    <item>com.android.systemui.usb.StorageNotification</item>

    • 其它 frameworks/base/packages/SystemUI/res/values/config.xml

    diff –git a/frameworks/base/packages/SystemUI/res/values/config.xml bframeworks/base/packages/SystemUI/res/values/config.xml
    index 848cdb1e83..3a9af8ca45 100644
    — a/frameworks/base/packages/SystemUI/res/values/config.xml
    +++ bframeworks/base/packages/SystemUI/res/values/config.xml
    @@ -284,7 +284,7 @@
    <item>com.android.systemui.util.NotificationChannels</item>
    <item>com.android.systemui.keyguard.KeyguardViewMediator</item>
    <item>com.android.systemui.recents.Recents</item>
    <item>com.android.systemui.volume.VolumeUI</item>
    + <!– <item>com.android.systemui.volume.VolumeUI</item> –>
    <item>com.android.systemui.stackdivider.Divider</item>
    <item>com.android.systemui.statusbar.phone.StatusBar</item>
    <item>com.android.systemui.usb.StorageNotification</item>

    音量最大等级

    frameworks/base/services/core/java/com/android/server/audio/AudioService.java

    /** Maximum volume index values for audio streams */
    protected static int[] MAX_STREAM_VOLUME = new int[] {
    5, // STREAM_VOICE_CALL
    7, // STREAM_SYSTEM
    7, // STREAM_RING
    15, // STREAM_MUSIC
    7, // STREAM_ALARM
    7, // STREAM_NOTIFICATION
    15, // STREAM_BLUETOOTH_SCO
    7, // STREAM_SYSTEM_ENFORCED
    15, // STREAM_DTMF
    15, // STREAM_TTS
    15, // STREAM_ACCESSIBILITY
    15 // STREAM_ASSISTANT
    };

    电话

    去掉打电话时会显示一下壁纸的功能 打开电话APP时,屏幕会闪一下,会先显示下壁纸然后才显示电话的UI。 修改方法

  • windowDisablePreview android:windowDisablePreview=“true” 是 AndroidManifest.xml 文件中用于 Activity 的一个属性,它的作用是禁止系统在应用切换时生成 Activity 的预览图。
  • 默认主题设置为透明主题 true
  • 添加背景图片 @android:color/transparent
  • diff git a/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/dialer/app/AndroidManifest.xml b/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/dialer/app/AndroidManifest.xml
    index 62c712eabc..1d009d3d0a 100644
    a/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/dialer/app/AndroidManifest.xml
    +++ b/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/dialer/app/AndroidManifest.xml
    @@ 83,6 +83,7 @@
    android:theme="@style/DialtactsTheme"
    android:icon="@mipmap/ic_launcher_calllog_ex"
    android:taskAffinity="android.task.dialer.calllog"
    + android:windowDisablePreview="true"
    android:launchMode="singleTask">
    <intentfilter>
    <action android:name="android.intent.action.MAIN" />
    diff git a/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/incallui/AndroidManifest.xml b/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/incallui/AndroidManifest.xml
    index bb45955cd3..4ffa664189 100644
    a/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/incallui/AndroidManifest.xml
    +++ b/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/incallui/AndroidManifest.xml
    @@ 69,6 +69,7 @@
    android:taskAffinity="com.android.incallui"
    android:theme="@style/Theme.InCallScreen"
    android:configChanges="uiMode"
    + android:windowDisablePreview="true"
    android:windowSoftInputMode="adjustResize">
    </activity>

    diff git a/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/incallui/theme/res/values/styles.xml b/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/incallui/theme/res/values/styles.xml
    index 71bed1ffeb..12d571f153 100644
    a/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/incallui/theme/res/values/styles.xml
    +++ b/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/incallui/theme/res/values/styles.xml
    @@ 29,8 +29,9 @@
    <item name="dialpad_style">@style/InCallDialpad</item>
    <item name="android:windowAnimationStyle">@null</item>

    <item name="android:windowBackground">@drawable/incall_background_gradient</item>
    <item name="android:windowShowWallpaper">true</item>
    + <item name="android:windowIsTranslucent">true</item>
    + <item name="android:windowBackground">@android:color/transparent</item>
    + <item name="android:windowShowWallpaper">false</item>
    </style>

    <style name="Theme.InCallScreen" parent="@style/Dialer.Dark.ThemeBase.NoActionBar">
    @@ 47,8 +48,9 @@
    <item name="dialpad_style">@style/InCallDialpad</item>
    <item name="android:windowAnimationStyle">@null</item>

    <item name="android:windowBackground">@drawable/incall_background_gradient</item>
    <item name="android:windowShowWallpaper">true</item>
    + <item name="android:windowShowWallpaper">false</item>
    + <item name="android:windowIsTranslucent">true</item>
    + <item name="android:windowBackground">@android:color/transparent</item>
    </style>

    <style name="Theme.InCallScreen.ManageConference" parent="Dialer.ThemeBase.ActionBar">

    禁止未接电话通知

    把public Void doInBackground(@Nullable Bundle input)函数中的内容注释掉。

    diff git a/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/dialer/app/calllog/MissedCallNotifier.java b/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/dialer/app/calllog/MissedCallNotifier.java
    index 40184955e8..51594f1393 100644
    a/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/dialer/app/calllog/MissedCallNotifier.java
    +++ b/vendor/sprd/platform/packages/apps/SprdDialer/java/com/android/dialer/app/calllog/MissedCallNotifier.java
    @@ 99,6 +99,7 @@ public class MissedCallNotifier implements Worker<Bundle, Void> {
    @Nullable
    @Override
    public Void doInBackground(@Nullable Bundle input) throws Throwable {
    + /* 禁止未接电话通知
    int count = 0;
    String number = "";
    String subText = "";
    @@ -108,6 +109,7 @@ public class MissedCallNotifier implements Worker<Bundle, Void> {
    subText = input.getString(MissedCallNotificationReceiver.MAIN_VICE_INFO);
    }
    updateMissedCallNotification(count, number, subText);
    + */

    /* @} */
    return null;
    }

    自动关机窗口

    frameworks/base/core/java/com/android/internal/app/ShutdownCountdownActivity.java 它是Android系统内部使用的类,主要用于在设备关机之前显示一个倒计时界面。 ShutdownCountdownActivity 通常在用户选择关机(例如,长按电源按钮或者通过设置菜单选择关机)后激活。这个活动显示了用户界面,告知用户设备将在几秒钟后关闭。这通常还包括一些额外的信息,比如是否保存更改(例如,如果用户在关机前打开了某个应用或做了某些设置更改)。

    通知

    屏蔽短信通知

    diff git a/packages/apps/Messaging/src/com/android/messaging/datamodel/BugleNotifications.java b/packages/apps/Messaging/src/com/android/messaging/datamodel/BugleNotifications.java
    index 3faee857df..df1ad8491a 100644
    a/packages/apps/Messaging/src/com/android/messaging/datamodel/BugleNotifications.java
    +++ b/packages/apps/Messaging/src/com/android/messaging/datamodel/BugleNotifications.java
    @@ 973,7 +973,7 @@ public class BugleNotifications {
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notification.defaults |= Notification.DEFAULT_LIGHTS;

    notificationManager.notify(notificationTag, type, notification);
    + //notificationManager.notify(notificationTag, type, notification);

    LogUtil.i(TAG, "Notifying for conversation " + conversationId + "; "
    + "tag = " + notificationTag + ", type = " + type);

    Android相关专栏

    Android Framework专栏链接 Android专栏

    作者:帅得不敢出门

    赞(0)
    未经允许不得转载:171主机测评 » Android Framework新设备超详细基础功能定制
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址