浅析Android M新功能Adoptable Storage Devices(适配的存储设备)

1.前言

        从所有的Nexus手机和平板都没有MicroSd卡槽,可以知道谷歌并不喜欢在Android设备上使用外部存储,从软件工程师的角度来讲是可以理解的,但是主流消费者明显有更强烈的需求。在Android M系统中,谷歌观念发生了改变,终于提供了官方的方式让用户将应用移动到外部存储上,其新功能名字叫“Adoptable Storage Devices”。

2.Adoptable Storage Devcies的作用

        Adoptable Storage Devices使系统获得了更大的存储容量,并且使用户可以自由移动应用和隐私数据到外部存储设备,不在需要第三方工具。用户使用Android设备时,可以主动的选择把外部存储设备格式化为常规移动存储或者系统内部存储。在格式化时系统给了两种选择:(1)Use as portable storage(for moving photos and other media between divices),仅仅作为外部存储设备;(2)Use as internal storage(for storing anything on this device only,including apps and photos),包裹一个加密层后,能够作为内部存储空间存储应用和隐私数据,经过加密后,该存储设备就不能再被别的设备使用。

3.Adpotable Storage Decices实现过程

        本节主要介绍从framework层到vold层的过程。主要涉及类如下:

StorageSettings–>StorageWizardInit–>StorageWizardFormatConfirm–>StorageWizardFormatProgress–>MountService–>NativeDaemonConnector–>commandlistener.cpp

3.1 当需要格式化时,用户进入格式化选择界面(StorageWizardInit类),在StorageSettings:: onPreferenceTreeClick()中DiskInitFragment.show(this, R.string.storage_dialog_unmountable, vol.getDiskId())将触发格式化选择界面。相关代码如下:

    public static class DiskInitFragment extends DialogFragment {
        …
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            …
            builder.setPositiveButton(R.string.storage_menu_set_up,
            
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
全志R16平台的Android6系统下调通rtl8189es 2017/8/28 9:41 版本:V1.1 1、干掉BT选项: Q:\r16m\rtl8189es_r16m\Android\device\softwinner\astar-evb30\overlay\frameworks\base\core\res\res\values\config.xml "bt-pan" 2、 Q:\r16m\rtl8189es_r16m\android\device\softwinner\astar-evb30\astar_evb30.mk $(call inherit-product, build/target/product/full_base.mk) $(call inherit-product, device/softwinner/astar-common/astar-common.mk) $(call inherit-product-if-exists, device/softwinner/astar-evb30/modules/modules.mk) DEVICE_PACKAGE_OVERLAYS := device/softwinner/astar-evb30/overlay \ $(DEVICE_PACKAGE_OVERLAYS) PRODUCT_PACKAGES += Launcher3 PRODUCT_PACKAGES += \ ESFileExplorer \ VideoPlayer #Bluetooth # PartnerChromeCustomizationsProvider PRODUCT_COPY_FILES += \ device/softwinner/astar-evb30/kernel:kernel \ device/softwinner/astar-evb30/fstab.sun8i:root/fstab.sun8i \ device/softwinner/astar-evb30/init.sun8i.rc:root/init.sun8i.rc \ device/softwinner/astar-evb30/init.recovery.sun8i.rc:root/init.recovery.sun8i.rc \ device/softwinner/astar-evb30/ueventd.sun8i.rc:root/ueventd.sun8i.rc \ device/softwinner/astar-evb30/recovery.fstab:recovery.fstab \ device/softwinner/astar-evb30/modules/modules/nand.ko:root/nand.ko \ device/softwinner/astar-evb30/modules/modules/disp.ko:root/disp.ko \ device/softwinner/astar-evb30/modules/modules/lcd.ko:root/lcd.ko \ device/softwinner/astar-evb30/modules/modules/gslX680new.ko:root/gslX680new.ko \ device/softwinner/astar-evb30/modules/modules/sunxi-keyboard.ko:root/sunxi-keyboard.ko \ device/softwinner/astar-evb30/modules/modules/sw-device.ko:root/sw-device.ko \ device/softwinner/astar-evb30/modules/modules/sunxi-keyboard.ko:obj/sunxi-keyboard.ko \ device/softwinner/astar-evb30/modules/modules/sw-device.ko:obj/sw-device.ko \ device/softwinner/astar-evb30/modules/modules/gslX680new.ko:obj/gslX680new.ko PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.camera.xml:system/etc/permissions/android.hardware.camera.xml \ frameworks/native/data/etc/android.hardware.camera.front.xml:system/etc/permissions/android.hardware.camera.front.xml \ frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml #frameworks/native/data/etc/android.hardware.bluetooth.xml:system/etc/permissions/android.hardware.bluetooth.xml # Low mem(memory <= 512M) device should not copy android.software.managed_users.xml #PRODUCT_COPY_FILES += \ # frameworks/native/data/etc/android.software.managed_users.xml:system/etc/permissions/android.software.managed_users.xml PRODUCT_COPY_FILES += \ device/softwinner/astar-evb30/configs/camera.cfg:system/etc/camera.cfg \ device/softwinner/astar-evb30/configs/gsensor.cfg:system/usr/gsensor.cfg \ device/softwinner/astar-evb30/configs/media_profiles.xml:system/etc/media_profiles.xml \ device/softwinner/astar-evb30/configs/sunxi-keyboard.kl:system/usr/keylayout/sunxi-keyboard.kl \ device/softwinner/astar-evb30/configs/tp.idc:system/usr/idc/tp.idc #PRODUCT_COPY_FILES += \ # device/softwinner/astar-evb30/bluetooth/bt_vendor.conf:system/etc/bluetooth/bt_vendor.conf # bootanimation PRODUCT_COPY_FILES += \ device/softwinner/astar-evb30/media/bootanimation.zip:system/media/bootanimation.zip # camera config for camera detector #PRODUCT_COPY_FILES += \ # device/softwinner/astar-evb30/hawkview/sensor_list_cfg.ini:system/etc/hawkview/sensor_list_cfg.ini # Radio Packages and Configuration Flie $(call inherit-product, device/softwinner/common/rild/radio_common.mk) #$(call inherit-product, device/softwinner/common/ril_modem/huawei/mu509/huawei_mu509.mk) #$(call inherit-product, device/softwinner/common/ril_modem/Oviphone/em55/oviphone_em55.mk) #PRODUCT_PROPERTY_OVERRIDES += \ # limit dex2oat threads to improve thermals PRODUCT_PROPERTY_OVERRIDES += \ dalvik.vm.boot-dex2oat-threads=4 \ dalvik.vm.dex2oat-threads=3 \ dalvik.vm.image-dex2oat-threads=4 # Realtek wifi efuse map #PRODUCT_COPY_FILES += \ # device/softwinner/astar-d7/wifi_efuse_8723bs-vq0.map:system/etc/wifi/wifi_efuse_8723bs-vq0.map PRODUCT_PROPERTY_OVERRIDES += \ dalvik.vm.dex2oat-flags=--no-watch-dog \ dalvik.vm.jit.codecachesize=0 \ ro.am.reschedule_service=true PRODUCT_PROPERTY_OVERRIDES += \ ro.frp.pst=/dev/block/by-name/frp PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.usb.config=mass_storage,adb \ ro.adb.secure=0 \ ro.sys.mutedrm=true \ rw.logger=0 # A33 Media PRODUCT_PROPERTY_OVERRIDES += \ ro.config.media=1 PRODUCT_PROPERTY_OVERRIDES += \ dalvik.vm.heapsize=384m \ dalvik.vm.heapstartsize=8m \ dalvik.vm.heapgrowthlimit=80m \ dalvik.vm.heaptargetutilization=0.75 \ dalvik.vm.heapminfree=512k \ dalvik.vm.heapmaxfree=8m \ ro.zygote.disable_gl_preload=false #PRODUCT_PROPERTY_OVERRIDES += \ # ro.config.low_ram=true PRODUCT_PROPERTY_OVERRIDES += \ ro.sf.lcd_density=213 PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.timezone=Asia/Shanghai \ persist.sys.country=CN \ persist.sys.language=zh # stoarge PRODUCT_PROPERTY_OVERRIDES += \ persist.fw.force_adoptable=true PRODUCT_CHARACTERISTICS := tablet PRODUCT_AAPT_CONFIG := mdpi PRODUCT_AAPT_PREF_CONFIG := mdpi #$(call inherit-product-if-exists, vendor/google/products/gms_base.mk) #for 8723bs-vq0,should setmacaddr #PRODUCT_PACKAGES += setmacaddr PRODUCT_BRAND := Allwinner PRODUCT_NAME := astar_evb30 PRODUCT_DEVICE := astar-evb30 PRODUCT_MODEL := QUAD-CORE R16 evb30 PRODUCT_MANUFACTURER := Allwinner 3、在这里配置你所使用的WIFI+BT: Q:\r16m\rtl8189es_r16m\android\device\softwinner\astar-evb30\BoardConfig.mk # wifi and bt configuration # 1. Wifi Configuration # 1.1 realtek wifi support # 1.1 realtek wifi configuration # BOARD_USR_WIFI: rtl8188eu/rtl8723bs/rtl8723bs_vq0/rtl8723cs BOARD_WIFI_VENDOR := realtek ifeq ($(BOARD_WIFI_VENDOR), realtek) WPA_SUPPLICANT_VERSION := VER_0_8_X BOARD_WPA_SUPPLICANT_DRIVER := NL80211 BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl #BOARD_USR_WIFI := rtl8723bs_vq0 #BOARD_USR_WIFI := rtl8188eu BOARD_USR_WIFI := rtl8189es include hardware/realtek/wlan/config/config.mk endif # 1.2 broadcom wifi support #BOARD_WIFI_VENDOR := broadcom ifeq ($(BOARD_WIFI_VENDOR), broadcom) BOARD_WPA_SUPPLICANT_DRIVER := NL80211 WPA_SUPPLICANT_VERSION := VER_0_8_X BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_bcmdhd BOARD_WLAN_DEVICE := bcmdhd WIFI_DRIVER_FW_PATH_PARAM := "/sys/module/bcmdhd/parameters/firmware_path" BOARD_USR_WIFI := ap6212 include hardware/broadcom/wlan/bcmdhd/firmware/$(BOARD_USR_WIFI)/device-bcm.mk endif ## 2. Bluetooth Configuration ## make sure BOARD_HAVE_BLUETOOTH is true for every bt vendor #BOARD_HAVE_BLUETOOTH := true #BOARD_HAVE_BLUETOOTH_BCM := true #BOARD_HAVE_BLUETOOTH_NAME := ap6212 #BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/softwinner/astar-evb30/bluetooth TARGET_USE_BOOSTUP_OPZ := true 4、 Q:\r16m\rtl8189es_r16m\android\device\softwinner\astar-evb30\init.sun8i.rc ## bluetooth # # UART device # chmod 0660 /dev/ttyS1 # chown bluetooth net_bt_stack /dev/ttyS1 # # # power up/down interface # chmod 0660 /sys/class/rfkill/rfkill0/state # chmod 0660 /sys/class/rfkill/rfkill0/type # chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state # chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/type # # # bluetooth MAC address programming # chown bluetooth net_bt_stack ro.bt.bdaddr_path # chown bluetooth net_bt_stack /system/etc/bluetooth # chown bluetooth net_bt_stack /data/misc/bluetooth # setprop ro.bt.bdaddr_path "/data/misc/bluetooth/bdaddr" # # # bluetooth LPM # chmod 0220 /proc/bluetooth/sleep/lpm # chmod 0220 /proc/bluetooth/sleep/btwrite # chown bluetooth net_bt_stack /proc/bluetooth/sleep/lpm # chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite ## broadcom wifi service ## 1 broadcom wifi sta service #service wpa_supplicant /system/bin/wpa_supplicant \ # -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ # -I/system/etc/wifi/wpa_supplicant_overlay.conf \ # -O/data/misc/wifi/sockets \ # -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 # # we will start as root and wpa_supplicant will switch to user wifi # # after setting up the capabilities required for WEXT # # user wifi # # group wifi inet keystore # class main # socket wpa_wlan0 dgram 660 wifi wifi # disabled # oneshot # ## 2 broadcom wifi sta p2p concurrent service #service p2p_supplicant /system/bin/wpa_supplicant \ # -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ # -I/system/etc/wifi/wpa_supplicant_overlay.conf \ # -O/data/misc/wifi/sockets -N \ # -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ # -I/system/etc/wifi/p2p_supplicant_overlay.conf \ # -puse_p2p_group_interface=1 -e/data/misc/wifi/entropy.bin \ # -g@android:wpa_wlan0 # # we will start as root and wpa_supplicant will switch to user wifi # # after setting up the capabilities required for WEXT # # user wifi # # group wifi inet keystore # class main # socket wpa_wlan0 dgram 660 wifi wifi # disabled # oneshot # realtek wifi service service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ -O/data/misc/wifi/sockets \ -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 class main socket wpa_wlan0 dgram 660 wifi wifi disabled oneshot # 1.2 realtek wifi sta p2p concurrent service service p2p_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \ -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ -e/data/misc/wifi/entropy.bin -N \ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ -O/data/misc/wifi/sockets \ -g@android:wpa_wlan0 class main socket wpa_wlan0 dgram 660 wifi wifi disabled oneshot 5、可选:为了调试方便 Q:\r16m\rtl8189es_r16m\android\frameworks\base\packages\SettingsProvider\res\values\defaults.xml 60000 false 修改为: 1800000 true 6、解决编译不过的问题。rtl8189es没有BT: Q:\r16m\rtl8189es_r16m\android\hardware\realtek\bluetooth\firmware\rtlbtfw_cfg.mk PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/rtl8723a_fw:system/etc/firmware/rtl8723as_fw \ $(LOCAL_PATH)/rtl8723a_config:system/etc/firmware/rtl8723as_config \ $(LOCAL_PATH)/rtl8723b_fw:system/etc/firmware/rtl8723bs_fw \ $(LOCAL_PATH)/rtl8723b_config:system/etc/firmware/rtl8723bs_config \ $(LOCAL_PATH)/rtl8723b_VQ0_fw:system/etc/firmware/rtl8723bs_VQ0_fw \ $(LOCAL_PATH)/rtl8723b_VQ0_config:system/etc/firmware/rtl8723bs_VQ0_config \ $(LOCAL_PATH)/rtl8723cs_xx_fw:system/etc/firmware/rtl8723cs_xx_fw \ $(LOCAL_PATH)/rtl8723cs_xx_config:system/etc/firmware/rtl8723cs_xx_config \ $(LOCAL_PATH)/rtl8723cs_cg_fw:system/etc/firmware/rtl8723cs_cg_fw \ $(LOCAL_PATH)/rtl8723cs_cg_config:system/etc/firmware/rtl8723cs_cg_config \ $(LOCAL_PATH)/rtl8723cs_vf_fw:system/etc/firmware/rtl8723cs_vf_fw \ $(LOCAL_PATH)/rtl8723cs_vf_config:system/etc/firmware/rtl8723cs_vf_config \ $(LOCAL_PATH)/rtl8703b_fw:system/etc/firmware/rtl8703bs_fw \ $(LOCAL_PATH)/rtl8703b_config:system/etc/firmware/rtl8703bs_config #$(TOP_DIR)device/softwinner/$(basename $(TARGET_DEVICE))/bluetooth/rtkbt.conf:system/etc/bluetooth/rtkbt.conf \ 7、默认的BSP没有加载rtl8189es Q:\r16m\rtl8189es_r16m\android\hardware\libhardware_legacy\wifi\Android.mk # realtek sdio wifi module ifeq ($(BOARD_USR_WIFI), rtl8189fs) LOCAL_CFLAGS += -DRTL_8189FS_WIFI_USED LOCAL_CFLAGS += -DRTL_WIFI_VENDOR endif # realtek sdio wifi module ifeq ($(BOARD_USR_WIFI), rtl8189es) LOCAL_CFLAGS += -DRTL_8189ES_WIFI_USED LOCAL_CFLAGS += -DRTL_WIFI_VENDOR endif Q:\r16m\rtl8189es_r16m\android\hardware\libhardware_legacy\wifi\wifi.c #elif defined RTL_8189FS_WIFI_USED /* rtl8189FS sdio wifi */ #ifndef WIFI_DRIVER_MODULE_PATH #define WIFI_DRIVER_MODULE_PATH "/system/vendor/modules/8189fs.ko" #endif #ifndef WIFI_DRIVER_MODULE_NAME #define WIFI_DRIVER_MODULE_NAME "8189fs" #endif #ifndef WIFI_DRIVER_MODULE_ARG #define WIFI_DRIVER_MODULE_ARG "ifname=wlan0 if2name=p2p0" #endif #elif defined RTL_8189ES_WIFI_USED /* rtl8189ES sdio wifi */ #ifndef WIFI_DRIVER_MODULE_PATH #define WIFI_DRIVER_MODULE_PATH "/system/vendor/modules/8189es.ko" #endif #ifndef WIFI_DRIVER_MODULE_NAME #define WIFI_DRIVER_MODULE_NAME "8189es" #endif #ifndef WIFI_DRIVER_MODULE_ARG #define WIFI_DRIVER_MODULE_ARG "ifname=wlan0 if2name=p2p0" #endif #elif defined ESPRESSIF_ESP8089_WIFI_USED /* esp8089 sdio wifi */ #ifndef WIFI_DRIVER_MODULE_PATH #define WIFI_DRIVER_MODULE_PATH "/system/vendor/modules/esp8089.ko" #endif #ifndef WIFI_DRIVER_MODULE_NAME #define WIFI_DRIVER_MODULE_NAME "esp8089" #endif #ifndef WIFI_DRIVER_MODULE_ARG #define WIFI_DRIVER_MODULE_ARG "" #endif #endif 8、WIFI+BT的驱动识别: Q:\r16m\rtl8189es_r16m\lichee\Linux-3.4\drivers\misc\rf_pm\bt_pm.c static int rfkill_set_power(void *data, bool blocked) { unsigned int mod_sel = get_rf_mod_type(); RF_MSG("rfkill set power %d\n", !blocked); switch (mod_sel){ case 2: /* ap6210 */ case 5: /* rtl8723bs */ case 7: /* ap6476 */ case 8: /* ap6330 */ case 9: /* gb9663 */ case 10: /* ap6212 */ if (!blocked) { if(bt_rst_n != -1) gpio_set_value(bt_rst_n, 1); } else { if(bt_rst_n != -1) gpio_set_value(bt_rst_n, 0); } break; default: RF_MSG("no bt module matched !!\n"); } bt_state = !blocked; msleep(10); return 0; } Q:\r16m\rtl8189es_r16m\lichee\linux-3.4\drivers\misc\rf_pm\rf_pm.c char *module_list[] = { " ", "ap6181", "ap6210", "rtl8188eu", "rtl8723au", "rtl8723bs", "esp8089", "ap6476", "ap6330", "gb9663", "ap6212", "rtl8189es" }; static int rf_pm_probe(struct platform_device *pdev) { get_module_res(); if (mod_info.num 0){ on_off = 1; } else { on_off = 0; } wifi_pm_msg("wifi power %s\n", on?"on":"off"); switch(mod_num){ case 1: /* ap6181 */ case 2: /* ap6210 */ case 5: /* rtl8723bs */ case 6: /* esp8089 */ case 7: /* ap6476 */ case 8: /* ap6330 */ case 9: /* gb9663*/ case 10: /* ap6212 */ case 11: /* rtl8189es */ if (wl_info.wl_reg_on != -1) gpio_set_value(wl_info.wl_reg_on, on_off); break; case 3: /* rtl8188eu */ rf_module_power(on_off); break; case 4: /* rtl8723au */ break; default: wifi_pm_msg("wrong module select %d !\n", mod_num); } wl_info.wl_power_state = on_off; wifi_state = on_off; } EXPORT_SYMBOL(wifi_pm_power); 9、直接使用全志R16平台的parrot v1.1系统下的rtl8189es驱动代替。Android6.0.1自带的驱动貌似有问题! Q:\r16m\rtl8189es_r16m\lichee\linux-3.4\drivers\net\wireless\rtl8189es\ rootroot@rootroot-E400:~/wyb/rtl8189es_r16m$ 7za x rtl8189es_r16m验证通过20170818_1659没有外层目录.7z -r -o./ rootroot@rootroot-E400:~/wyb/rtl8189es_r16m$ cd lichee/linux-3.4/drivers/net/wireless/ rootroot@rootroot-E400:~/wyb/rtl8189es_r16m/lichee/linux-3.4/drivers/net/wireless$ rootroot@rootroot-E400:~/wyb/rtl8189es_r16m/lichee/linux-3.4/drivers/net/wireless$ rm rtl8189es -rf rootroot@rootroot-E400:~/wyb/rtl8189es_r16m/lichee/linux-3.4/drivers/net/wireless$ tar zxvf rtl8189es4.tar.gz 10、可选操作:为了调试方便 Q:\r16m\rtl8189es_r16m\lichee\tools\pack\chips\sun8iw5p1\configs\default\env.cfg #kernel command arguments console=ttyS0,115200 nand_root=/dev/nandd mmc_root=/dev/mmcblk0p7 init=/init loglevel=8 #set kernel cmdline if boot.img or recovery.img has no cmdline we will use this setargs_nand=setenv bootargs console=${console} root=${nand_root} init=${init} ion_cma_list="120m,256m" loglevel=${loglevel} partitions=${partitions} setargs_mmc=setenv bootargs console=${console} root=${mmc_root} init=${init} ion_cma_list="120m,256m" loglevel=${loglevel} partitions=${partitions} #nand command syntax: sunxi_flash read address partition_name read_bytes #0x40007800 = 0x40008000(kernel entry) - 0x800(boot.img header 2k) boot_normal=sunxi_flash read 40007800 boot;boota 40007800 boot_recovery=sunxi_flash read 40007800 recovery;boota 40007800 boot_fastboot=fastboot #recovery key recovery_key_value_max=0x13 recovery_key_value_min=0x10 #fastboot key fastboot_key_value_max=0x8 fastboot_key_value_min=0x2 #uboot system env config bootdelay=3 #default bootcmd, will change at runtime according to key press bootcmd=run setargs_nand boot_normal#default nand boot 11、 Q:\r16m\rtl8189es_r16m\lichee\tools\pack\chips\sun8iw5p1\configs\evb-30\sys_config.fex ;--------------------------------------------------------------------------------------------------------- ; wakeup_src_para: ; sometimes, u would like to add more wakeup src in standby mode, these para will be ; help; ; u need to make sure the standby mode support the wakeup src. Also, some hw ; condition must be guaranteed. ; including: ; cpu_en: power on or off. ; 1: mean power on ; 0: mean power off ; cpu_freq: indicating lowest freq. unit is Mhz; ; dram selfresh_en: selfresh or not. ; 1: enable enter selfresh ; 0: disable enter selfresh ; dram_pll: if not enter selfresh, indicating lowest freq. unit is Mhz; ; wakeup_src: to make the scenario work, the wakeup src is needed. ;--------------------------------------------------------------------------------------------------------- [wakeup_src_para] cpu_en = 0 cpu_freq = 48 ; (cpu:apb:ahb) pll_ratio = 0x111 dram_selfresh_en= 1 dram_freq = 36 wakeup_src_wl = port:PL07 ;wakeup_src_bt = port:PL09 bb_wake_ap = port:PL02 ;-------------------------------------------------------------------------------- ;wifi/bt/fm/gps/nfc modules configuration ;module_num: ; 0- none ; 1- ap6181(wifi) ; 2- ap6210/ap6212(wifi+bt) ; 3- rtl8188eu(wifi) ; 4- rtl8723au(wifi+bt) ; 5- rtl8723bs/rtl8723bs-vq0(wifi+bt) ; 6- esp8089(wifi) ; 7- ap6476(wifi+bt+fm+gps) ; 8- ap6330(wifi+bt+fm) ; 9- gb9663(wifi+bt+fm) ; 10- ap6212(wifi+bt) ; 11- rtl8189es(wifi) ;module_power1: ""- bat, "axp_dldo1"- axp dldo1 ;module_power1_vol: power1 voltage, mv; not used for module_power1 is "" ;module_power2: ""- bat, "axp_dldo2"- axp dldo2 ;module_power2_vol: power2 voltage, mv; not used for module_power2 is "" ;module_power3: ""- bat, "axp_dldo2"- axp dldo2 ;module_power3_vol: power3 voltage, mv; not used for module_power3 is "" ;power_switch: module power switch io when bat supply ;chip_en: enable chip io ;lpo_use_apclk: ""- not use, "losc_out"- a23/33, "ac10032k1"?"ac10032k2"?"ac10032k3"- a80/a83 ;-------------------------------------------------------------------------------- [rf_para] module_num = 11 module_power1 = "axp22_dldo1" module_power1_vol = 3300000 module_power2 = "axp22_dldo2" module_power2_vol = 3300000 module_power3 = "axp22_aldo1" module_power3_vol = 3300000 power_switch = chip_en = lpo_use_apclk = "losc_out" ;-------------------------------------------------------------------------------- ;wifi configuration ;wifi_used: 0-not use, 1- use ;wifi_sdc_id: 0- SDC0, 1- SDC1, 2- SDC2, 3- SDC3 ;wifi_usbc_id: 0- USB0, 1- USB1, 2- USB2 ;wifi_usbc_type: 1- EHCI(speed 2.0), 2- OHCI(speed 1.0) ;wl_reg_on: wifi function enable io ;wl_host_wake: wifi device wake-up host ;wl_host_wake_invert: whether wl_host_wake use inverter between ap and module ; 0: not used, 1: used ;-------------------------------------------------------------------------------- [wifi_para] wifi_used = 1 wifi_sdc_id = 1 wifi_usbc_id = 1 wifi_usbc_type = 1 wl_reg_on = port:PL06 wl_host_wake = port:PL07 rtl8189es_host_wake = port:PL07 wl_host_wake_invert = 0 ;-------------------------------------------------------------------------------- ;bluetooth configuration ;bt_used: 0- no used, 1- used ;bt_uard_id: 0- uart0, 1- uart1, 2- uart2 ;bt_rst_n: bt function enable io ;bt_wake: host wake-up bluetooth device ;bt_wak_host: bt device wake-up host ;bt_host_wake_invert: whether bt_host_wake use inverter between ap and module ; 0: not used, 1: used ;-------------------------------------------------------------------------------- [bt_para] bt_used = 0 ;bt_uart_id = 1 ;bt_rst_n = port:PL08 ;bt_wake = port:PL10 ;bt_host_wake = port:PL09 ;bt_host_wake_invert = 0 power_start = 3 pmu_temp_enable = 0
1. Introduction 1.1 Document Structure 1.1.1. Requirements by Device Type 1.1.2. Requirement ID 1.1.3. Requirement ID in Section 2 2. Device Types 2.1 Device Configurations 2.2. Handheld Requirements 2.2.1. Hardware 2.2.2. Multimedia 2.2.3. Software 2.2.4. Performance and Power 2.2.5. Security Model 2.3. Television Requirements 2.3.1. Hardware 2.3.2. Multimedia 2.3.3. Software 2.2.4. Performance and Power 2.4. Watch Requirements 2.4.1. Hardware 2.4.2. Multimedia 2.4.3. Software 2.5. Automotive Requirements 2.5.1. Hardware 2.5.2. Multimedia 2.5.3. Software 2.2.4. Performance and Power 2.2.5. Security Model 2.6. Tablet Requirements 2.4.1. Hardware 3. Software 3.1. Managed API Compatibility 3.1.1. Android Extensions 3.2. Soft API Compatibility 3.2.1. Permissions 3.2.2. Build Parameters 3.2.3. Intent Compatibility 3.2.3.1. Core Application Intents 3.2.3.2. Intent Resolution 3.2.3.3. Intent Namespaces 3.2.3.4. Broadcast Intents 3.2.3.5. Default App Settings 3.2.4. Activities on secondary displays 3.3. Native API Compatibility 3.3.1. Application Binary Interfaces 3.3.2. 32-bit ARM Native Code Compatibility 3.4. Web Compatibility 3.4.1. WebView Compatibility 3.4.2. Browser Compatibility 3.5. API Behavioral Compatibility 3.6. API Namespaces 3.7. Runtime Compatibility 3.8. User Interface Compatibility 3.8.1. Launcher (Home Screen) 3.8.2. Widgets 3.8.3. Notifications 3.8.3.1. Presentation of Notifications 3.8.3.2. Notification Listener Service 3.8.3.3. DND (Do not Disturb) 3.8.4. Search 3.8.5. Alerts and Toasts 3.8.6. Themes 3.8.7. Live Wallpapers 3.8.8. Activity Switching 3.8.9. Input Management 3.8.10. Lock Screen Media Control 3.8.11. Screen savers (previously Dreams) 3.8.12. Location 3.8.13. Unicode and Font 3.8.14. Multi-windows 3.9. Device Administration 3.9.1 Device Provisioning 3.9.1.1 Device owner provisioning 3.9.1.2 Managed profile provisioning 3.9.2 Managed Profile Support 3.10. Accessibility 3.11. Text-to-Speech 3.12. TV Input Framework 3.12.1. TV App 3.12.1.1. Electronic Program Guide 3.12.1.2. Navigation 3.12.1.3. TV input app linking 3.12.1.4. Time shifting 3.12.1.5. TV recording 3.13. Quick Settings 3.14. Media UI 3.15. Instant Apps 3.16. Companion Device Pairing 4. Application Packaging Compatibility 5. Multimedia Compatibility 5.1. Media Codecs 5.1.1. Audio Encoding 5.1.2. Audio Decoding 5.1.3. Audio Codecs Details 5.1.4. Image Encoding 5.1.5. Image Decoding 5.1.6. Image Codecs Details 5.1.7. Video Codecs 5.1.8. Video Codecs List 5.2. Video Encoding 5.2.1. H.263 5.2.2. H-264 5.2.3. VP8 5.2.4. VP9 5.3. Video Decoding 5.3.1. MPEG-2 5.3.2. H.263 5.3.3. MPEG-4 5.3.4. H.264 5.3.5. H.265 (HEVC) 5.3.6. VP8 5.3.7. VP9 5.4. Audio Recording 5.4.1. Raw Audio Capture 5.4.2. Capture for Voice Recognition 5.4.3. Capture for Rerouting of Playback 5.5. Audio Playback 5.5.1. Raw Audio Playback 5.5.2. Audio Effects 5.5.3. Audio Output Volume 5.6. Audio Latency 5.7. Network Protocols 5.8. Secure Media 5.9. Musical Instrument Digital Interface (MIDI) 5.10. Professional Audio 5.11. Capture for Unprocessed 6. Developer Tools and Options Compatibility 6.1. Developer Tools 6.2. Developer Options 7. Hardware Compatibility 7.1. Display and Graphics 7.1.1. Screen Configuration 7.1.1.1. Screen Size 7.1.1.2. Screen Aspect Ratio 7.1.1.3. Screen Density 7.1.2. Display Metrics 7.1.3. Screen Orientation 7.1.4. 2D and 3D Graphics Acceleration 7.1.4.1 OpenGL ES 7.1.4.2 Vulkan 7.1.4.3 RenderScript 7.1.4.4 2D Graphics Acceleration 7.1.4.5 Wide-gamut Displays 7.1.5. Legacy Application Compatibility Mode 7.1.6. Screen Technology 7.1.7. Secondary Displays 7.2. Input Devices 7.2.1. Keyboard 7.2.2. Non-touch Navigation 7.2.3. Navigation Keys 7.2.4. Touchscreen Input 7.2.5. Fake Touch Input 7.2.6. Game Controller Support 7.2.6.1. Button Mappings 7.2.7. Remote Control 7.3. Sensors 7.3.1. Accelerometer 7.3.2. Magnetometer 7.3.3. GPS 7.3.4. Gyroscope 7.3.5. Barometer 7.3.6. Thermometer 7.3.7. Photometer 7.3.8. Proximity Sensor 7.3.9. High Fidelity Sensors 7.3.10. Fingerprint Sensor 7.3.11. Android Automotive-only sensors 7.3.11.1. Current Gear 7.3.11.2. Day Night Mode 7.3.11.3. Driving Status 7.3.11.4. Wheel Speed 7.3.12. Pose Sensor 7.4. Data Connectivity 7.4.1. Telephony 7.4.1.1. Number Blocking Compatibility 7.4.2. IEEE 802.11 (Wi-Fi) 7.4.2.1. Wi-Fi Direct 7.4.2.2. Wi-Fi Tunneled Direct Link Setup 7.4.2.3. Wi-Fi Aware 7.4.2.4. Wi-Fi Passpoint 7.4.3. Bluetooth 7.4.4. Near-Field Communications 7.4.5. Minimum Network Capability 7.4.6. Sync Settings 7.4.7. Data Saver 7.5. Cameras 7.5.1. Rear-Facing Camera 7.5.2. Front-Facing Camera 7.5.3. External Camera 7.5.4. Camera API Behavior 7.5.5. Camera Orientation 7.6. Memory and Storage 7.6.1. Minimum Memory and Storage 7.6.2. Application Shared Storage 7.6.3. Adoptable Storage 7.7. USB 7.7.1. USB peripheral mode 7.7.2. USB host mode 7.8. Audio 7.8.1. Microphone 7.8.2. Audio Output 7.8.2.1. Analog Audio Ports 7.8.3. Near-Ultrasound 7.9. Virtual Reality 7.9.1. Virtual Reality Mode 7.9.2. Virtual Reality High Performance 8. Performance and Power 8.1. User Experience Consistency 8.2. File I/O Access Performance 8.3. Power-Saving Modes 8.4. Power Consumption Accounting 8.5. Consistent Performance 9. Security Model Compatibility 9.1. Permissions 9.2. UID and Process Isolation 9.3. Filesystem Permissions 9.4. Alternate Execution Environments 9.5. Multi-User Support 9.6. Premium SMS Warning 9.7. Kernel Security Features 9.8. Privacy 9.8.1. Usage History 9.8.2. Recording 9.8.3. Connectivity 9.8.4. Network Traffic 9.9. Data Storage Encryption 9.9.1. Direct Boot 9.9.2. File Based Encryption 9.9.3. Full Disk Encryption 9.10. Device Integrity 9.11. Keys and Credentials 9.11.1. Secure Lock Screen 9.12. Data Deletion 9.13. Safe Boot Mode 9.14. Automotive Vehicle System Isolation 10. Software Compatibility Testing 10.1. Compatibility Test Suite 10.2. CTS Verifier 11. Updatable Software 12. Document Changelog 12.1. Changelog Viewing Tips 13. Contact Us

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值