Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Initial import of P4 common device configuration

  • Loading branch information...
commit 6209320ba0f90412a52dc4413257e1765fc93003 0 parents
Steve Kondik cyanogen authored Steve Kondik committed
Showing with 2,224 additions and 0 deletions.
  1. +100 −0 BoardConfigCommon.mk
  2. +51 −0 CleanSpec.mk
  3. +9 −0 README
  4. +2 −0  egl.cfg
  5. +6 −0 gps.conf
  6. +40 −0 gps.xml
  7. +331 −0 init.p3.rc
  8. +79 −0 init.p3.usb.rc
  9. +393 −0 keylayout/Vendor_04e8_Product_7021.kl
  10. +5 −0 keylayout/sec_jack.kl
  11. +9 −0 keylayout/sec_key.kl
  12. +93 −0 keylayout/sec_keyboard.kl
  13. +3 −0  keylayout/sec_power_key.kl
  14. +74 −0 lpm.rc
  15. BIN  lpm/bin/charging_mode
  16. BIN  lpm/bin/playlpm
  17. BIN  lpm/lib/libQmageDecoder.so
  18. BIN  lpm/media/Disconnected.qmg
  19. BIN  lpm/media/battery_charging_0.qmg
  20. BIN  lpm/media/battery_charging_100.qmg
  21. BIN  lpm/media/battery_charging_20.qmg
  22. BIN  lpm/media/battery_charging_40.qmg
  23. BIN  lpm/media/battery_charging_60.qmg
  24. BIN  lpm/media/battery_charging_80.qmg
  25. BIN  lpm/media/battery_error.qmg
  26. BIN  lpm/media/chargingwarning.qmg
  27. +433 −0 media_profiles.xml
  28. +134 −0 overlay/frameworks/base/core/res/res/values/config.xml
  29. +41 −0 overlay/frameworks/base/core/res/res/xml/storage_list.xml
  30. +27 −0 overlay/frameworks/base/packages/SystemUI/res/values/config.xml
  31. +118 −0 p4-common.mk
  32. +59 −0 recovery/init.rc
  33. +49 −0 recovery/recovery_ui.c
  34. +113 −0 releasetools.py
  35. +1 −0  sec_touchscreen.idc
  36. +42 −0 ueventd.p3.rc
  37. +12 −0 vold.fstab
100 BoardConfigCommon.mk
@@ -0,0 +1,100 @@
+#
+# Copyright (C) 2011 The Android Open-Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# This variable is set first, so it can be overridden
+# by BoardConfigVendor.mk
+BOARD_USES_GENERIC_AUDIO := false
+USE_CAMERA_STUB := false
+
+DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay
+
+TARGET_NO_BOOTLOADER := true
+TARGET_CPU_ABI := armeabi-v7a
+TARGET_CPU_ABI2 := armeabi
+TARGET_ARCH_VARIANT := armv7-a
+TARGET_ARCH_VARIANT_CPU := cortex-a9
+TARGET_ARCH_VARIANT_FPU := vfpv3-d16
+TARGET_CPU_SMP := true
+#TARGET_HAVE_TEGRA_ERRATA_657451 := true
+ARCH_ARM_HAVE_TLS_REGISTER := true
+
+BOARD_KERNEL_BASE := 0x10000000
+BOARD_KERNEL_CMDLINE :=
+BOARD_PAGE_SIZE := 2048
+
+TARGET_NO_RADIOIMAGE := true
+TARGET_BOARD_PLATFORM := tegra
+TARGET_BOARD_BOOTLOADER_NAME := p3
+#TARGET_BOARD_INFO_FILE := device/samsung/p4-common/board-info.txt
+
+BOARD_EGL_CFG := device/samsung/p4-common/egl.cfg
+
+#BOARD_USES_HGL := true
+#BOARD_USES_OVERLAY := true
+USE_OPENGL_RENDERER := true
+
+BOARD_USES_AUDIO_LEGACY := true
+
+TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888"
+#TARGET_RECOVERY_UI_LIB := librecovery_ui_ventana
+
+# custom recovery ui
+BOARD_CUSTOM_RECOVERY_KEYMAPPING := ../../device/samsung/p4-common/recovery/recovery_ui.c
+BOARD_HAS_NO_SELECT_BUTTON := true
+BOARD_HAS_LARGE_FILESYSTEM := true
+
+# override recovery init.rc
+TARGET_RECOVERY_INITRC := device/samsung/p4-common/recovery/init.rc
+
+# Indicate that the board has an Internal SD Card
+BOARD_HAS_SDCARD_INTERNAL := true
+
+# device-specific extensions to the updater binary
+#TARGET_RECOVERY_UPDATER_LIBS += librecovery_updater_ventana
+TARGET_RELEASETOOLS_EXTENSIONS := device/samsung/p4-common
+TARGET_USERIMAGES_USE_EXT4 := true
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 606076928
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 14472970240
+BOARD_FLASH_BLOCK_SIZE := 4096
+
+# Wifi related defines
+WPA_SUPPLICANT_VERSION := VER_0_8_X
+BOARD_WPA_SUPPLICANT_DRIVER := WEXT
+BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd
+BOARD_HOSTAP_DRIVER := WEXT
+BOARD_HOSTAP_PRIVATE_LIB := lib_driver_cmd_bcmdhd
+BOARD_WLAN_DEVICE := bcmdhd
+BOARD_WLAN_DEVICE_REV := bcm4330
+
+WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/dhd.ko"
+WIFI_DRIVER_FW_STA_PATH := "/system/etc/wifi/bcm4330.bin"
+WIFI_DRIVER_FW_AP_PATH := "/vendor/firmware/fw_bcm4330_apsta.bin"
+WIFI_DRIVER_MODULE_NAME := "dhd"
+WIFI_DRIVER_MODULE_ARG := "firmware_path=/system/etc/wifi/bcm4330_sta.bin nvram_path=/system/etc/wifi/nvram_net.txt"
+
+BOARD_HAVE_BLUETOOTH := true
+BOARD_HAVE_BLUETOOTH_BCM := true
+
+#BOARD_LIB_DUMPSTATE := libdumpstate.ventana
+
+# Use nicer font rendering
+BOARD_USE_SKIA_LCDTEXT := true
+
+# Charging Mode (LPM)
+BOARD_CHARGING_MODE_BOOTING_LPM := "/sys/class/power_supply/battery/charging_mode_booting"
+
+# Don't dequeue current buffer
+BOARD_NO_ALLOW_DEQUEUE_CURRENT_BUFFER := true
51 CleanSpec.mk
@@ -0,0 +1,51 @@
+# Copyright (C) 2007 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# If you don't need to do a full clean build but would like to touch
+# a file or delete some intermediate files, add a clean step to the end
+# of the list. These steps will only be run once, if they haven't been
+# run before.
+#
+# E.g.:
+# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
+# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
+#
+# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
+# files that are missing or have been moved.
+#
+# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
+# Use $(OUT_DIR) to refer to the "out" directory.
+#
+# If you need to re-do something that's already mentioned, just copy
+# the command and add it to the bottom of the list. E.g., if a change
+# that you made last week required touching a file and a change you
+# made today requires touching the same file, just copy the old
+# touch step and add it to the end of the list.
+#
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
+
+# For example:
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
+#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
+#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
+
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/Phone_intermediates)
9 README
@@ -0,0 +1,9 @@
+Device configuration for the Samsung Galaxy Tab 10.1
+
+Copyright (C) 2011 The CyanogenMod Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
2  egl.cfg
@@ -0,0 +1,2 @@
+0 0 android
+0 1 tegra
6 gps.conf
@@ -0,0 +1,6 @@
+NTP_SERVER=north-america.pool.ntp.org
+XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
+XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
+XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
+SUPL_HOST=supl.google.com
+SUPL_PORT=7276
40 gps.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<glgps xmlns="http://www.glpals.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.glpals.com/ glconfig.xsd" >
+ <!--HAL Confguration -->
+ <hal
+ acPortName="/dev/ttyHS0" lBaudRate="115200" cLogEnableInitState="false" cLogEnabled="false" acLogDirectory="/data/gps/log/" ltoFileName="lto2.dat"
+ enhanced-assisted="false" cp-enhanced-assisted="true" TISEnabled="false" RILEnabled="false" LPmode="false" cp-cold-start="false" cp-guard-time-sec="1"
+ arp-supl-enable="true" arp-supl-cap-msb="true" arp-supl-cap-msa="true" arp-supl-cap-ecid="false"
+ acSuplServer="supl.google.com" SuplPort="7276" arp-supl-use-apn="false"
+ LbsEnable="true" LbsLocal="false" LbsServer="bcmls2.glpals.com" LbsPort="7275" LbsSyncLto="true" LbsSyncCells="true" LbsWlanEnable="false"
+ LbsSyncLtoThresholdDays="3"
+ gpioNStdbyPath="/sys/class/sec/gps/pwr_en"
+ gpioNResetPath="/sys/class/sec/gps/nrst"
+ gpioDelayMs="250"
+ lcsApiSockName="/dev/socket/gps"
+ acNvStoDir="/data/gps/"
+ />
+
+ <!-- Parameters passed to GlEngine -->
+ <!--gll
+ LogPriMask="LOG_DEBUG"
+ LogFacMask="LOG_GLLAPI | LOG_DEVIA | LOG_NMEA | LOG_RAWDATA | LOG_DEVMS | LOG_ASIC_IO | LOG_BBTEST | LOG_DEVET | LOG_MESM | LOG_DEVKF | LOG_DEVJG | LOG_DEVMR"
+ FrqPlan="FRQ_PLAN_10MHZ_2PPM_10MHZ_100PPB" FrqPlan="FRQ_PLAN_10MHZ_2PPM" "FRQ_PLAN_16_8MHZ_2PPM"
+ RfType="GL_RF_PALS7" "GL_RF_BARRACUDA" "GL_RF_2075_LN22" "GL_RF_2075_BRCM" "GL_RF_PALS7_BRCM" "GL_RF_BARRACUDA_BRCM" "GL_RF_BARRACUDA_EXT_LNA"
+ NOTE: "GL_RF_BARRACUDA_EXT_LNA" should be used for BAS
+ LbsEnable="true" LbsLocal="true" LbsServer="bcmlbsqa1.glpals.com" LbsPort="7275" LbsSyncTimeSec = "60" LbsSyncLto="true" LbsSyncCells="true"
+ /-->
+
+ <!-- NOTE: BrcmRFwildBase, BrcmRFclkDiv, anBrcmRFclkRefHz only needed for Broadcom RF front end test chips
+ ( i.e. GL_RF_2075_BRCM and GL_RF_PALS7_BRCM ) -->
+
+ <gll
+ LogPriMask="LOG_DEBUG"
+ LogFacMask="LOG_GLLAPI | LOG_DEVIA | LOG_NMEA | LOG_RAWDATA | LOG_DEVMS | LOG_ASIC_IO | LOG_BBTEST | LOG_DEVET | LOG_MESM | LOG_DEVKF | LOG_DEVJG | LOG_DEVMR"
+ FrqPlan="FRQ_PLAN_26MHZ_2PPM"
+ RfType="GL_RF_4751_DANUBE_EXT_LNA"
+ WarmStandbyTimeout1Seconds="30"
+ WarmStandbyTimeout2Seconds="50"
+ >
+ </gll>
+</glgps>
331 init.p3.rc
@@ -0,0 +1,331 @@
+import init.p3.usb.rc
+
+on early-init
+ mount debugfs debugfs /sys/kernel/debug
+ write /sys/class/firmware/timeout 5
+
+ export EXTERNAL_STORAGE /mnt/sdcard
+ mkdir /mnt/sdcard 0000 system system
+ # for backwards compatibility
+ symlink /mnt/sdcard /sdcard
+
+ # create directory for mounting usb drives
+ mkdir /mnt/usbdrive 0666 system system
+ symlink /mnt/usbdrive /usbdrive
+
+ mkdir /efs 0771 system system
+
+ write /sys/block/mmcblk0/queue/iosched/slice_idle 0
+
+on init
+# set tegra_dc0/1 perms
+ chmod 666 /dev/tegra_dc0
+ chmod 666 /dev/tegra_dc1
+
+# Vibetonz
+ export VIBE_PIPE_PATH /dev/pipes
+ mkdir /dev/pipes 0771 shell shell
+
+on fs
+ mount ext4 /dev/block/mmcblk0p4 /system wait ro
+ setprop ro.crypto.tmpfs_options size=128m,mode=0771,uid=1000,gid=1000
+ mount ext4 /dev/block/mmcblk0p5 /cache wait noatime nosuid nodev
+ exec check_filesystem /dev/block/mmcblk0p8 ext4
+ mount ext4 /dev/block/mmcblk0p8 /data wait noatime nosuid nodev discard,noauto_da_alloc
+
+ # mound EFS partition
+ mount ext4 /dev/block/mmcblk0p1 /efs wait noatime nosuid nodev
+
+on post-fs-data
+ chown radio system /efs
+ chmod 0771 /efs
+ chmod 0775 /efs/bluetooth
+
+ mkdir /data/misc/wifi 0770 wifi wifi
+ mkdir /data/misc/wifi/sockets 0770 wifi wifi
+ mkdir /data/misc/dhcp 0770 dhcp dhcp
+ chown dhcp dhcp /data/misc/dhcp
+
+#Change Permission /data/app for booting time
+ chmod 0771 /data/app
+ chown system system /data/app
+
+#SISO-PLAYREADY-CHANGES
+#DRM directory creation
+ mkdir /system/etc/security/.drm 0775
+ chown root root /system/etc/security/.drm
+ chmod 0775 /system/etc/security/.drm
+
+ # DivX DRM
+ mkdir /efs/.files 0777
+ mkdir /efs/.files/.dx1 0777
+ mkdir /efs/.files/.dm33 0777
+ mkdir /efs/.files/.mp301 0777
+
+ # Added for Playready DRM Support
+ mkdir /data/data/.drm 0775
+ chown drm system /data/data/.drm
+ chmod 0775 /data/data/.drm
+ mkdir /data/data/.drm/.playready 0775
+ chown drm system /data/data/.drm/.playready
+ chmod 0775 /data/data/.drm/.playready
+
+ #Added drm folder to copy drm plugins
+ mkdir /system/lib/drm 0775
+ chown root root /system/lib/drm
+ chmod 0775 /system/lib/drm
+#SISO-PLAYREADY-CHANGES
+
+
+# create data/gps for GPS demon
+ mkdir /data/gps 700 gps system
+ chown gps system /data/gps
+ chown gps root /sys/class/sec/gps/pwr_en
+ chmod 664 /sys/class/sec/gps/nrst
+
+
+# create log system for radio
+ mkdir /data/log 0777 root root
+ chmod 0777 /data/log
+
+ # we will remap this as /mnt/sdcard with the sdcard fuse tool
+ mkdir /data/media 0775 media_rw media_rw
+ chown media_rw media_rw /data/media
+
+ # Set indication (checked by vold) that we have finished this action
+ setprop vold.post_fs_data_done 1
+
+# change owner for writable sysfs files
+ chown system radio /sys/class/power_supply/battery/reset_soc
+ chown system radio /sys/class/power_supply/battery/reset_cap
+ chown system radio /sys/class/power_supply/battery/fg_reg
+ chown system radio /sys/class/power_supply/battery/charging_mode_booting
+
+on boot
+# bluetooth
+ # UART device
+ chmod 0660 /dev/ttyHS2
+ chown bluetooth bluetooth /dev/ttyHS2
+
+ # power up/down interface
+ chmod 0660 /sys/class/rfkill/rfkill0/state
+ chmod 0660 /sys/class/rfkill/rfkill0/type
+ chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
+ chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
+ chmod 6777 /system/bin/bcm_dut
+
+ # bluetooth MAC address programming
+ setprop ro.bt.bdaddr_path "/efs/imei/bt.txt"
+ chown bluetooth bluetooth ro.bt.bdaddr_path
+
+# UART/USB path switching
+ chown system radio /sys/class/sec/sec_misc/uartsel
+ chown system radio /sys/class/sec/sec_misc/usbsel
+
+# adc
+ chown system radio /sys/class/sec/sec_adc/adc_test
+
+# backlight
+ chown system system /sys/class/backlight/pwm-backlight/brightness
+
+# CMC623
+ chown system radio /sys/class/mdnie/cmc623/mdnie_auto_ove
+ chown system radio /sys/class/mdnie/cmc623/mdnie_bg
+ chown system radio /sys/class/mdnie/cmc623/mdnie_cabc
+ chown system radio /sys/class/mdnie/cmc623/mdnie_ove
+ chown system radio /sys/class/mdnie/cmc623/mdnie_roi
+ chown system radio /sys/class/mdnie/cmc623/mdnie_scenario
+ chown system radio /sys/class/mdnie/cmc623/mdnie_temp
+ chown system radio /sys/class/mdnie/cmc623/lcd_power
+ chown system radio /sys/class/mdnie/cmc623/lcdtype
+
+# MHL
+ chown system radio /sys/devices/platform/acc_con/MHD_file
+
+# Camera
+ chown root camera /sys/class/sec/sec_imx073/camerafw
+
+# Sensor
+ chmod 666 /dev/nvhost-ctrl
+ chmod 666 /dev/nvhost-display
+ chmod 666 /dev/nvhost-dsi
+ chmod 666 /dev/nvhost-gr2d
+ chmod 666 /dev/nvhost-gr3d
+ chmod 666 /dev/nvhost-isp
+ chmod 666 /dev/nvhost-mpe
+ chmod 666 /dev/nvhost-vi
+
+# sensor
+ chown root system /dev/mpu
+ chown root system /dev/mpuirq
+ chown root system /dev/accelirq
+ chown root system /dev/timerirq
+ chown root system /sys/class/proximity/proximity/proximity_avg
+
+ chmod 0660 /dev/mpu
+ chmod 0660 /dev/mpuirq
+ chmod 0660 /dev/accelirq
+ chmod 0660 /dev/timerirq
+
+ chmod 664 /sys/class/sensors/accelerometer_sensor/calibration
+ chown system system /sys/class/sensors/accelerometer_sensor/calibration
+
+# Vibetonz
+ chmod 0660 /dev/tspdrv
+ chown root shell /dev/tspdrv
+
+# to enable wifi
+ setprop wifi.interface "eth0"
+# end of wifi
+
+# wlan permissions
+# to enable wifi
+# setprop wifi.interface eth0
+# Power management settings
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive
+ write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor interactive
+
+# HSIC control
+ chown radio system /sys/devices/platform/tegra-ehci.1/ehci_power
+
+# emmc checksum
+ chown system radio /sys/class/sec/sec_misc/emmc_checksum_done
+ chown system radio /sys/class/sec/sec_misc/emmc_checksum_pass
+
+# Get MAC address from efs for COB type
+ copy /efs/imei/.nvmac.info /data/.nvmac.info
+ chown system system /data/.nvmac.info
+ chmod 0400 /data/.nvmac.info
+
+# disable_vbus
+ chown system radio /sys/devices/platform/android_usb/disable_vbus
+ chmod 0664 /sys/devices/platform/android_usb/disable_vbus
+
+# Keyboard dock
+ chown input input /sys/class/sec/keyboard/keyboard_led
+ chmod 0660 /sys/class/sec/keyboard/keyboard_led
+
+# KBC
+ chown system radio /sys/devices/platform/tegra-kbc/matrixkey_pressed
+ chmod 0664 /sys/devices/platform/tegra-kbc/matrixkey_pressed
+
+# GPIO_KEY
+ chown system radio /sys/devices/platform/gpio-keys.0/gpiokey_pressed
+ chmod 0664 /sys/devices/platform/gpio-keys.0/gpiokey_pressed
+
+# OTG Test
+ chown system radio /sys/class/host_notify/usb_otg/booster
+ chmod 0664 /sys/class/host_notify/usb_otg/booster
+
+# MTP permission
+ chmod 0660 /dev/usb_mtp_gadget
+ chown system system /dev/usb_mtp_gadget
+
+# DEBUG_LEVEL
+ chown system radio /sys/devices/platform/sec_debug_level
+ chmod 0664 /sys/devices/platform/sec_debug_level
+ chown system radio /sys/devices/virtual/misc/level/control
+ chmod 0664 /sys/devices/virtual/misc/level/control
+# Camera
+ chown system radio /sys/class/sec/sec_s5k5ccgx/cameraflash
+ chown system radio /sys/class/sec/sec_s5k5ccgx/camtype
+ chown system radio /sys/class/sec/sec_s5k5bbgx/camtype
+
+# crypto permissions
+ chown system system /dev/tegra-crypto
+ chmod 0660 /dev/tegra-crypto
+
+# Hdcp
+ chown system system /dev/nvhdcp1
+ chmod 0660 /dev/nvhdcp1
+ chown system system /system/etc/hdmi/dectable.dat
+ chmod 0440 /system/etc/hdmi/dectable.dat
+ chown system system /system/etc/hdmi/dectable1.dat
+ chmod 0440 /system/etc/hdmi/dectable1.dat
+
+on property:vold.decrypt=check_integrity
+ exec check_encrypted_filesystem
+ setprop vold.post_fs_data_done 1
+
+# Always start adbd on userdebug and eng builds
+ setprop sys.usb.config adb
+
+service drm /system/bin/drmserver
+ class main
+ user drm
+ group system root inet sdcard_rw
+
+service wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/misc/wifi/wpa_supplicant.conf
+ class main
+ socket wpa_eth0 dgram 0660 wifi wifi
+ disabled
+ oneshot
+
+service dhcpcd_eth0 /system/bin/dhcpcd -ABKL
+ class main
+ disabled
+ oneshot
+
+service dhcpcd_p2p /system/bin/dhcpcd -aABKL
+ class main
+ disabled
+ oneshot
+
+service dhcpcd_bnep0 /system/bin/dhcpcd -ABKL
+ class main
+ disabled
+ oneshot
+
+service iprenew_eth0 /system/bin/dhcpcd -n
+ class main
+ disabled
+ oneshot
+
+service iprenew_p2p /system/bin/dhcpcd -n
+ class main
+ disabled
+ oneshot
+
+service iprenew_bnep0 /system/bin/dhcpcd -n
+ class main
+ disabled
+ oneshot
+
+service gpsd /system/bin/gpsd -c /system/etc/gps.xml
+ class main
+ socket gps seqpacket 0660 gps system
+ user gps
+ group system inet
+
+
+# create virtual SD card at /mnt/sdcard, based on the /data/media directory
+# daemon will drop to user/group system/media_rw after initializing
+# underlying files in /data/media wil be created with user and group media_rw (1023)
+service sdcard /system/bin/sdcard /data/media 1023 1023
+ class late_start
+
+service hciattach /system/bin/brcm_patchram_plus --enable_hci --enable_lpm --no2bytes \
+ --use_baudrate_for_download --baudrate 3000000 --patchram /etc/firmware/bcm4330B1.hcd /dev/ttyHS2
+ class main
+ user bluetooth
+ group bluetooth net_bt_admin
+ disabled
+
+# Mount usb drives as /usbdrive. Generally usb drives are formatted with FAT
+# filesystem, so we support FAT as of now.
+on device-added-/sys/block/sda
+ mount vfat /dev/block/sda /mnt/usbdrive
+
+on device-removed-/sys/block/sda
+ umount /mnt/usbdrive
+
+# bugreport is triggered by holding down volume down, volume up and power
+service bugreport /system/bin/bugmailer.sh -v
+ class main
+ disabled
+ oneshot
+ keycodes 114 115 116
+
+service battery_charger /charger
+ class charger
+
79 init.p3.usb.rc
@@ -0,0 +1,79 @@
+on init
+ write /sys/class/android_usb/android0/iSerial $ro.serialno
+ write /sys/class/android_usb/android0/f_rndis/manufacturer Samsung
+ write /sys/class/android_usb/android0/f_rndis/vendorID 04e8
+ write /sys/class/android_usb/android0/f_rndis/wceis 1
+
+on boot
+ write /sys/class/android_usb/android0/iManufacturer $ro.product.manufacturer
+ write /sys/class/android_usb/android0/iProduct $ro.product.model
+
+on property:sys.usb.config=mtp
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 04e8
+ write /sys/class/android_usb/android0/idProduct 685c
+ write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/enable 1
+ setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 04e8
+ write /sys/class/android_usb/android0/idProduct 6860
+ write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=mtp,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 04e8
+ write /sys/class/android_usb/android0/idProduct 6860
+ write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=rndis
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 04e8
+ write /sys/class/android_usb/android0/idProduct 6863
+ write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/bDeviceClass 224
+ write /sys/class/android_usb/android0/enable 1
+ setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=rndis,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 04e8
+ write /sys/class/android_usb/android0/idProduct 6864
+ write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/bDeviceClass 224
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=ptp
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 04e8
+ write /sys/class/android_usb/android0/idProduct 6865
+ write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/enable 1
+ setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=ptp,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 04e8
+ write /sys/class/android_usb/android0/idProduct 6866
+ write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=rndis,dm
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 04e8
+ write /sys/class/android_usb/android0/idProduct 6862
+ write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/enable 1
+ setprop sys.usb.state $sys.usb.config
393 keylayout/Vendor_04e8_Product_7021.kl
@@ -0,0 +1,393 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# Generic key layout file for full alphabetic US English PC style external keyboards.
+#
+# This file is intentionally very generic and is intended to support a broad rang of keyboards.
+# Do not edit the generic key layout to support a specific keyboard; instead, create
+# a new key layout file with the required keyboard configuration.
+#
+
+key 1 BACK
+key 2 1
+key 3 2
+key 4 3
+key 5 4
+key 6 5
+key 7 6
+key 8 7
+key 9 8
+key 10 9
+key 11 0
+key 12 MINUS
+key 13 EQUALS
+key 14 DEL
+key 15 TAB
+key 16 Q
+key 17 W
+key 18 E
+key 19 R
+key 20 T
+key 21 Y
+key 22 U
+key 23 I
+key 24 O
+key 25 P
+key 26 LEFT_BRACKET
+key 27 RIGHT_BRACKET
+key 28 ENTER
+key 29 CTRL_LEFT
+key 30 A
+key 31 S
+key 32 D
+key 33 F
+key 34 G
+key 35 H
+key 36 J
+key 37 K
+key 38 L
+key 39 SEMICOLON
+key 40 APOSTROPHE
+key 41 GRAVE
+key 42 SHIFT_LEFT
+key 43 BACKSLASH
+key 44 Z
+key 45 X
+key 46 C
+key 47 V
+key 48 B
+key 49 N
+key 50 M
+key 51 COMMA
+key 52 PERIOD
+key 53 SLASH
+key 54 SHIFT_RIGHT
+key 55 NUMPAD_MULTIPLY
+key 56 ALT_LEFT
+key 57 SPACE
+key 58 CAPS_LOCK
+key 59 F1
+key 60 F2
+key 61 F3
+key 62 F4
+key 63 F5
+key 64 F6
+key 65 F7
+key 66 F8
+key 67 F9
+key 68 F10
+key 69 NUM_LOCK
+key 70 SCROLL_LOCK
+key 71 NUMPAD_7
+key 72 NUMPAD_8
+key 73 NUMPAD_9
+key 74 NUMPAD_SUBTRACT
+key 75 NUMPAD_4
+key 76 NUMPAD_5
+key 77 NUMPAD_6
+key 78 NUMPAD_ADD
+key 79 NUMPAD_1
+key 80 NUMPAD_2
+key 81 NUMPAD_3
+key 82 NUMPAD_0
+key 83 NUMPAD_DOT
+# key 84 (undefined)
+# key 85 "KEY_ZENKAKUHANKAKU"
+key 86 BACKSLASH
+key 87 F11
+key 88 F12
+# key 89 "KEY_RO"
+# key 90 "KEY_KATAKANA"
+# key 91 "KEY_HIRAGANA"
+# key 92 "KEY_HENKAN"
+# key 93 "KEY_KATAKANAHIRAGANA"
+# key 94 "KEY_MUHENKAN"
+key 95 NUMPAD_COMMA
+key 96 NUMPAD_ENTER
+key 97 CTRL_RIGHT
+key 98 NUMPAD_DIVIDE
+key 99 SYSRQ
+key 100 ALT_GR
+# key 101 "KEY_LINEFEED"
+key 102 MOVE_HOME
+key 103 DPAD_UP
+key 104 PAGE_UP
+key 105 DPAD_LEFT
+key 106 DPAD_RIGHT
+key 107 MOVE_END
+key 108 DPAD_DOWN
+key 109 PAGE_DOWN
+key 110 INSERT
+key 111 FORWARD_DEL
+# key 112 "KEY_MACRO"
+key 113 MUTE
+key 114 VOLUME_DOWN
+key 115 VOLUME_UP
+key 116 POWER WAKE
+key 117 NUMPAD_EQUALS
+# key 118 "KEY_KPPLUSMINUS"
+key 119 BREAK
+# key 120 (undefined)
+key 121 NUMPAD_COMMA
+# key 122 "KEY_HANGEUL"
+# key 123 "KEY_HANJA"
+# key 124 "KEY_YEN"
+key 125 META_LEFT
+key 126 META_RIGHT
+key 127 MENU WAKE_DROPPED
+key 128 MEDIA_STOP
+# key 129 "KEY_AGAIN"
+# key 130 "KEY_PROPS"
+# key 131 "KEY_UNDO"
+# key 132 "KEY_FRONT"
+# key 133 "KEY_COPY"
+# key 134 "KEY_OPEN"
+# key 135 "KEY_PASTE"
+# key 136 "KEY_FIND"
+# key 137 "KEY_CUT"
+# key 138 "KEY_HELP"
+key 139 MENU WAKE_DROPPED
+# key 140 "KEY_CALC"
+# key 141 "KEY_SETUP"
+# key 142 "KEY_SLEEP"
+# key 143 "KEY_WAKEUP"
+# key 144 "KEY_FILE"
+# key 145 "KEY_SENDFILE"
+# key 146 "KEY_DELETEFILE"
+# key 147 "KEY_XFER"
+# key 148 "KEY_PROG1"
+# key 149 "KEY_PROG2"
+key 150 EXPLORER
+# key 151 "KEY_MSDOS"
+# key 152 "KEY_COFFEE"
+key 152 POWER WAKE
+# key 153 "KEY_DIRECTION"
+# key 154 "KEY_CYCLEWINDOWS"
+key 155 EMAIL
+key 156 BOOKMARK
+# key 157 "KEY_COMPUTER"
+key 158 BACK WAKE_DROPPED
+key 159 FORWARD
+key 160 MEDIA_CLOSE
+key 161 MEDIA_EJECT
+key 162 MEDIA_EJECT
+key 163 MEDIA_NEXT
+key 164 MEDIA_PLAY_PAUSE
+key 165 MEDIA_PREVIOUS
+key 166 MEDIA_STOP
+key 167 MEDIA_RECORD
+key 168 MEDIA_REWIND
+key 169 CALL
+# key 170 "KEY_ISO"
+# key 171 "KEY_CONFIG"
+key 172 HOME
+# key 173 "KEY_REFRESH"
+# key 174 "KEY_EXIT"
+# key 175 "KEY_MOVE"
+# key 176 "KEY_EDIT"
+key 177 PAGE_UP
+key 178 PAGE_DOWN
+key 179 NUMPAD_LEFT_PAREN
+key 180 NUMPAD_RIGHT_PAREN
+# key 181 "KEY_NEW"
+# key 182 "KEY_REDO"
+# key 183 F13
+# key 184 F14
+# key 185 F15
+# key 186 F16
+# key 187 F17
+# key 188 F18
+# key 189 F19
+# key 190 F20
+# key 191 F21
+# key 192 F22
+# key 193 F23
+# key 194 F24
+# key 195 (undefined)
+# key 196 (undefined)
+# key 197 (undefined)
+# key 198 (undefined)
+# key 199 (undefined)
+key 200 MEDIA_PLAY
+key 201 MEDIA_PAUSE
+# key 202 "KEY_PROG3"
+# key 203 "KEY_PROG4"
+# key 204 (undefined)
+# key 205 "KEY_SUSPEND"
+# key 206 "KEY_CLOSE"
+key 207 MEDIA_PLAY
+key 208 MEDIA_FAST_FORWARD
+# key 209 "KEY_BASSBOOST"
+# key 210 "KEY_PRINT"
+# key 211 "KEY_HP"
+key 212 CAMERA
+# key 213 "KEY_SOUND"
+# key 214 "KEY_QUESTION"
+key 215 ENVELOPE
+# key 216 "KEY_CHAT"
+key 217 SEARCH
+# key 218 "KEY_CONNECT"
+# key 219 "KEY_FINANCE"
+# key 220 "KEY_SPORT"
+# key 221 "KEY_SHOP"
+# key 222 "KEY_ALTERASE"
+# key 223 "KEY_CANCEL"
+key 224 BRIGHTNESS_DOWN
+key 225 BRIGHTNESS_UP
+key 226 HEADSETHOOK
+key 227 STAR
+key 228 POUND
+key 229 SOFT_LEFT
+key 230 SOFT_RIGHT
+key 231 CALL
+key 232 DPAD_CENTER
+key 233 HEADSETHOOK
+# key 234 "KEY_0_5" or "KEY_SAVE"
+# key 235 "KEY_2_5" or "KEY_DOCUMENTS"
+# key 236 "KEY_SWITCHVIDEOMODE" or "KEY_BATTERY"
+# key 237 "KEY_KBDILLUMTOGGLE"
+# key 238 "KEY_KBDILLUMDOWN"
+# key 239 "KEY_KBDILLUMUP"
+# key 240 "KEY_UNKNOWN"
+
+
+key 304 BUTTON_A
+key 305 BUTTON_B
+key 306 BUTTON_C
+key 307 BUTTON_X
+key 308 BUTTON_Y
+key 309 BUTTON_Z
+key 310 BUTTON_L1
+key 311 BUTTON_R1
+key 312 BUTTON_L2
+key 313 BUTTON_R2
+key 314 BUTTON_SELECT
+key 315 BUTTON_START
+key 316 BUTTON_MODE
+key 317 BUTTON_THUMBL
+key 318 BUTTON_THUMBR
+
+
+# key 352 "KEY_OK"
+# key 353 "KEY_SELECT"
+# key 354 "KEY_GOTO"
+# key 355 "KEY_CLEAR"
+# key 356 "KEY_POWER2"
+# key 357 "KEY_OPTION"
+# key 358 "KEY_INFO"
+# key 359 "KEY_TIME"
+# key 360 "KEY_VENDOR"
+# key 361 "KEY_ARCHIVE"
+key 362 GUIDE
+# key 363 "KEY_CHANNEL"
+# key 364 "KEY_FAVORITES"
+# key 365 "KEY_EPG"
+key 366 DVR
+# key 367 "KEY_MHP"
+# key 368 "KEY_LANGUAGE"
+key 368 LANG
+# key 369 "KEY_TITLE"
+# key 370 "KEY_SUBTITLE"
+# key 371 "KEY_ANGLE"
+# key 372 "KEY_ZOOM"
+# key 373 "KEY_MODE"
+# key 374 "KEY_KEYBOARD"
+# key 375 "KEY_SCREEN"
+# key 376 "KEY_PC"
+key 377 TV
+# key 378 "KEY_TV2"
+# key 379 "KEY_VCR"
+# key 380 "KEY_VCR2"
+# key 381 "KEY_SAT"
+# key 382 "KEY_SAT2"
+# key 383 "KEY_CD"
+# key 384 "KEY_TAPE"
+# key 385 "KEY_RADIO"
+# key 386 "KEY_TUNER"
+# key 387 "KEY_PLAYER"
+# key 388 "KEY_TEXT"
+# key 389 "KEY_DVD"
+# key 390 "KEY_AUX"
+# key 391 "KEY_MP3"
+# key 392 "KEY_AUDIO"
+# key 393 "KEY_VIDEO"
+# key 394 "KEY_DIRECTORY"
+# key 395 "KEY_LIST"
+# key 396 "KEY_MEMO"
+# key 397 "KEY_CALENDAR"
+# key 398 "KEY_RED"
+# key 399 "KEY_GREEN"
+# key 400 "KEY_YELLOW"
+# key 401 "KEY_BLUE"
+key 402 CHANNEL_UP
+key 403 CHANNEL_DOWN
+# key 404 "KEY_FIRST"
+# key 405 "KEY_LAST"
+# key 406 "KEY_AB"
+# key 407 "KEY_NEXT"
+# key 408 "KEY_RESTART"
+# key 409 "KEY_SLOW"
+# key 410 "KEY_SHUFFLE"
+# key 411 "KEY_BREAK"
+# key 412 "KEY_PREVIOUS"
+# key 413 "KEY_DIGITS"
+# key 414 "KEY_TEEN"
+# key 415 "KEY_TWEN"
+
+
+# key 448 "KEY_DEL_EOL"
+# key 449 "KEY_DEL_EOS"
+# key 450 "KEY_INS_LINE"
+# key 451 "KEY_DEL_LINE"
+
+
+key 464 FUNCTION
+key 465 ESCAPE FUNCTION
+key 466 F1 FUNCTION
+key 467 F2 FUNCTION
+key 468 F3 FUNCTION
+key 469 F4 FUNCTION
+key 470 F5 FUNCTION
+key 471 F6 FUNCTION
+key 472 F7 FUNCTION
+key 473 F8 FUNCTION
+key 474 F9 FUNCTION
+key 475 F10 FUNCTION
+key 476 F11 FUNCTION
+key 477 F12 FUNCTION
+key 478 1 FUNCTION
+key 479 2 FUNCTION
+key 480 D FUNCTION
+key 481 E FUNCTION
+key 482 F FUNCTION
+key 483 S FUNCTION
+key 484 B FUNCTION
+
+
+# key 497 KEY_BRL_DOT1
+# key 498 KEY_BRL_DOT2
+# key 499 KEY_BRL_DOT3
+# key 500 KEY_BRL_DOT4
+# key 501 KEY_BRL_DOT5
+# key 502 KEY_BRL_DOT6
+# key 503 KEY_BRL_DOT7
+# key 504 KEY_BRL_DOT8
+
+
+key 704 RECENTAPPS
+key 705 APPLICATION
+key 706 SIP_ON_OFF
+key 707 VOICESEARCH
+key 708 QPANEL_ON_OFF
5 keylayout/sec_jack.kl
@@ -0,0 +1,5 @@
+key 226 HEADSETHOOK WAKE
+key 163 MEDIA_NEXT WAKE
+key 165 MEDIA_PREVIOUS WAKE
+key 115 VOLUME_UP WAKE
+key 114 VOLUME_DOWN WAKE
9 keylayout/sec_key.kl
@@ -0,0 +1,9 @@
+key 115 VOLUME_UP WAKE
+key 114 VOLUME_DOWN WAKE
+key 105 DPAD_LEFT
+key 106 DPAD_RIGHT
+key 103 DPAD_UP
+key 108 DPAD_DOWN
+key 232 DPAD_CENTER
+key 212 CAMERA WAKE
+key 231 CALL
93 keylayout/sec_keyboard.kl
@@ -0,0 +1,93 @@
+key 158 BACK WAKE_DROPPED
+key 359 HOME WAKE_DROPPED
+key 61 RECENTAPPS WAKE_DROPPED
+key 150 EXPLORER WAKE_DROPPED
+key 215 EMAIL WAKE_DROPPED
+key 152 POWER WAKE_DROPPED
+key 224 BRIGHTNESS_DOWN WAKE_DROPPED
+key 225 BRIGHTNESS_UP WAKE_DROPPED
+key 113 MUTE WAKE_DROPPED
+key 114 VOLUME_DOWN WAKE_DROPPED
+key 115 VOLUME_UP WAKE_DROPPED
+key 207 MEDIA_PLAY_PAUSE WAKE_DROPPED
+key 168 MEDIA_REWIND WAKE_DROPPED
+key 208 MEDIA_FAST_FORWARD WAKE_DROPPED
+key 163 MEDIA_NEXT WAKE_DROPPED
+key 165 MEDIA_PREVIOUS WAKE_DROPPED
+key 185 APPLICATION WAKE_DROPPED
+key 139 MENU WAKE_DROPPED
+key 111 FORWARD_DEL WAKE_DROPPED
+
+key 41 GRAVE WAKE_DROPPED
+key 2 1 WAKE_DROPPED
+key 3 2 WAKE_DROPPED
+key 4 3 WAKE_DROPPED
+key 5 4 WAKE_DROPPED
+key 6 5 WAKE_DROPPED
+key 7 6 WAKE_DROPPED
+key 8 7 WAKE_DROPPED
+key 9 8 WAKE_DROPPED
+key 10 9 WAKE_DROPPED
+key 11 0 WAKE_DROPPED
+key 12 MINUS WAKE_DROPPED
+key 13 EQUALS WAKE_DROPPED
+key 14 DEL WAKE_DROPPED
+
+key 15 TAB WAKE_DROPPED
+key 16 Q WAKE_DROPPED
+key 17 W WAKE_DROPPED
+key 18 E WAKE_DROPPED
+key 19 R WAKE_DROPPED
+key 20 T WAKE_DROPPED
+key 21 Y WAKE_DROPPED
+key 22 U WAKE_DROPPED
+key 23 I WAKE_DROPPED
+key 24 O WAKE_DROPPED
+key 25 P WAKE_DROPPED
+key 26 LEFT_BRACKET WAKE_DROPPED
+key 27 RIGHT_BRACKET WAKE_DROPPED
+key 43 BACKSLASH WAKE_DROPPED
+
+key 58 CAPSLOCK WAKE_DROPPED
+key 30 A WAKE_DROPPED
+key 31 S WAKE_DROPPED
+key 32 D WAKE_DROPPED
+key 33 F WAKE_DROPPED
+key 34 G WAKE_DROPPED
+key 35 H WAKE_DROPPED
+key 36 J WAKE_DROPPED
+key 37 K WAKE_DROPPED
+key 38 L WAKE_DROPPED
+key 39 SEMICOLON WAKE_DROPPED
+key 40 APOSTROPHE WAKE_DROPPED
+key 523 POUND WAKE_DROPPED
+key 28 ENTER WAKE_DROPPED
+
+key 42 SHIFT_LEFT WAKE_DROPPED
+key 44 Z WAKE_DROPPED
+key 45 X WAKE_DROPPED
+key 46 C WAKE_DROPPED
+key 47 V WAKE_DROPPED
+key 48 B WAKE_DROPPED
+key 49 N WAKE_DROPPED
+key 50 M WAKE_DROPPED
+key 51 COMMA WAKE_DROPPED
+key 52 PERIOD WAKE_DROPPED
+key 53 SLASH WAKE_DROPPED
+key 54 SHIFT_RIGHT WAKE_DROPPED
+
+key 29 CTRL_LEFT WAKE_DROPPED
+key 187 SIP_ON_OFF WAKE_DROPPED
+key 217 SEARCH WAKE_DROPPED
+key 190 VOICESEARCH WAKE_DROPPED
+key 57 SPACE WAKE_DROPPED
+key 191 LANG WAKE_DROPPED
+key 192 QPANEL_ON_OFF WAKE_DROPPED
+key 100 ALT_GR WAKE_DROPPED
+
+key 108 DPAD_DOWN WAKE_DROPPED
+key 103 DPAD_UP WAKE_DROPPED
+key 105 DPAD_LEFT WAKE_DROPPED
+key 106 DPAD_RIGHT WAKE_DROPPED
+
+key 143 NOTIFICATION WAKE
3  keylayout/sec_power_key.kl
@@ -0,0 +1,3 @@
+key 116 POWER WAKE
+key 143 NOTIFICATION WAKE
+
74 lpm.rc
@@ -0,0 +1,74 @@
+on early-init
+ start ueventd
+
+on init
+loglevel 3
+ export PATH /sbin:/system/bin
+ export ANDROID_ROOT /system
+ export ANDROID_ASSETS /system/app
+ export ANDROID_DATA /data
+ export ASEC_MOUNTPOINT /mnt/asec
+ export LOOP_MOUNTPOINT /mnt/obb
+ export BOOTCLASSPATH /system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar
+
+# Backward compatibility
+ symlink /system/etc /etc
+
+ mkdir /system
+ mkdir /data 0771 system system
+ mkdir /cache 0770 system cache
+ mkdir /config 0500 root root
+
+
+on fs
+ # Mount /system rw first to give the filesystem a chance to save a checkpoint
+ mount ext4 /dev/block/mmcblk0p4 /system wait ro
+
+on post-fs
+ # once everything is setup, no need to modify /
+ mount rootfs rootfs / ro remount
+
+on boot
+# backlight
+ chown system system /sys/class/backlight/pwm-backlight/brightness
+
+ class_start core
+ class_start main
+
+#service debuggerd /system/bin/debuggerd
+
+## Daemon processes to be run by init.
+##
+service ueventd /sbin/ueventd
+ class core
+ critical
+
+service console /system/bin/sh
+ class core
+ console
+ disabled
+ user shell
+ group log
+
+on property:ro.debuggable=1
+ start console
+
+#service recovery /sbin/recovery
+
+#service adbd /sbin/adbd recovery
+# disabled
+
+on property:persist.service.adb.enable=1
+ start adbd
+
+on property:persist.service.adb.enable=0
+ stop adbd
+
+service playlpm /system/bin/playlpm
+ class main
+ user root
+
+service lpmkey /system/bin/charging_mode
+ class main
+ user root
+
BIN  lpm/bin/charging_mode
Binary file not shown
BIN  lpm/bin/playlpm
Binary file not shown
BIN  lpm/lib/libQmageDecoder.so
Binary file not shown
BIN  lpm/media/Disconnected.qmg
Binary file not shown
BIN  lpm/media/battery_charging_0.qmg
Binary file not shown
BIN  lpm/media/battery_charging_100.qmg
Binary file not shown
BIN  lpm/media/battery_charging_20.qmg
Binary file not shown
BIN  lpm/media/battery_charging_40.qmg
Binary file not shown
BIN  lpm/media/battery_charging_60.qmg
Binary file not shown
BIN  lpm/media/battery_charging_80.qmg
Binary file not shown
BIN  lpm/media/battery_error.qmg
Binary file not shown
BIN  lpm/media/chargingwarning.qmg
Binary file not shown
433 media_profiles.xml
@@ -0,0 +1,433 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE MediaSettings [
+ <!ELEMENT MediaSettings (CamcorderProfiles,
+ EncoderOutputFileFormat+,
+ VideoEncoderCap+,
+ AudioEncoderCap+,
+ VideoDecoderCap,
+ AudioDecoderCap)>
+ <!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
+ <!ELEMENT EncoderProfile (Video, Audio)>
+ <!ATTLIST EncoderProfile quality (timelapse1080p|timelapse720p|timelapse480p|timelapsehigh|timelapselow|1080p|720p|480p|qcif|high|low) #REQUIRED>
+ <!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
+ <!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
+ <!ELEMENT Video EMPTY>
+ <!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
+ <!ATTLIST Video bitRate CDATA #REQUIRED>
+ <!ATTLIST Video width CDATA #REQUIRED>
+ <!ATTLIST Video height CDATA #REQUIRED>
+ <!ATTLIST Video frameRate CDATA #REQUIRED>
+ <!ELEMENT Audio EMPTY>
+ <!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
+ <!ATTLIST Audio bitRate CDATA #REQUIRED>
+ <!ATTLIST Audio sampleRate CDATA #REQUIRED>
+ <!ATTLIST Audio channels (1|2) #REQUIRED>
+ <!ELEMENT ImageEncoding EMPTY>
+ <!ATTLIST ImageEncoding quality (97|90|80|70|60|50) #REQUIRED>
+ <!ELEMENT ImageDecoding EMPTY>
+ <!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
+ <!ELEMENT Camera EMPTY>
+ <!ATTLIST Camera previewFrameRate CDATA #REQUIRED>
+ <!ELEMENT EncoderOutputFileFormat EMPTY>
+ <!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
+ <!ELEMENT VideoEncoderCap EMPTY>
+ <!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
+ <!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
+ <!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
+ <!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
+ <!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
+ <!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
+ <!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
+ <!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
+ <!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
+ <!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
+ <!ELEMENT AudioEncoderCap EMPTY>
+ <!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
+ <!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
+ <!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
+ <!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
+ <!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
+ <!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
+ <!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
+ <!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
+ <!ELEMENT VideoDecoderCap EMPTY>
+ <!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
+ <!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
+ <!ELEMENT AudioDecoderCap EMPTY>
+ <!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
+ <!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
+]>
+<!--
+ This file is used to declare the multimedia profiles and capabilities
+ on an android-powered device.
+-->
+<MediaSettings>
+ <!-- Each camcorder profile defines a set of predefined configuration parameters -->
+ <!-- Back Camera -->
+ <CamcorderProfiles cameraId="0">
+
+ <EncoderProfile quality="low" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="161000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="62900"
+ sampleRate="16000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="high" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="62900"
+ sampleRate="16000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="161000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="62900"
+ sampleRate="16000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="62900"
+ sampleRate="16000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="161000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!--
+ The Audio part of the profile will not be used since time lapse mode
+ does not capture audio
+ -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <!--
+ The Audio part of the profile will not be used since time lapse mode
+ does not capture audio
+ -->
+ <Audio codec="aac"
+ bitRate="62900"
+ sampleRate="16000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="161000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!--
+ The Audio part of the profile will not be used since time lapse mode
+ does not capture audio
+ -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="1536000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <!--
+ The Audio part of the profile will not be used since time lapse mode
+ does not capture audio
+ -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="161000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!--
+ The Audio part of the profile will not be used since time lapse mode
+ does not capture audio
+ -->
+ <Audio codec="aac"
+ bitRate="62900"
+ sampleRate="16000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <!--
+ The Audio part of the profile will not be used since time lapse mode
+ does not capture audio
+ -->
+ <Audio codec="aac"
+ bitRate="62900"
+ sampleRate="16000"
+ channels="1" />
+ </EncoderProfile>
+
+ <ImageEncoding quality="97" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="50" />
+ <ImageDecoding memCap="20000000" />
+
+ </CamcorderProfiles>
+
+ <!-- Front Camera -->
+ <CamcorderProfiles cameraId="1">
+
+ <EncoderProfile quality="low" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="161000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="high" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="62900"
+ sampleRate="16000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="161000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="62900"
+ sampleRate="16000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="161000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!--
+ The Audio part of the profile will not be used since time lapse mode
+ does not capture audio
+ -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="3078000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!--
+ The Audio part of the profile will not be used since time lapse mode
+ does not capture audio
+ -->
+ <Audio codec="aac"
+ bitRate="62900"
+ sampleRate="16000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="161000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!--
+ The Audio part of the profile will not be used since time lapse mode
+ does not capture audio
+ -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="1536000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <!--
+ The Audio part of the profile will not be used since time lapse mode
+ does not capture audio
+ -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="3078000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!--
+ The Audio part of the profile will not be used since time lapse mode
+ does not capture audio
+ -->
+ <Audio codec="aac"
+ bitRate="62900"
+ sampleRate="16000"
+ channels="1" />
+ </EncoderProfile>
+
+ <ImageEncoding quality="97" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="50" />
+ <ImageDecoding memCap="20000000" />
+
+ </CamcorderProfiles>
+
+ <EncoderOutputFileFormat name="mp4" />
+
+ <!--
+ If a codec is not enabled, it is invisible to the applications
+ In other words, the applications won't be able to use the codec
+ or query the capabilities of the codec at all if it is disabled
+ -->
+ <VideoEncoderCap name="h264" enabled="true"
+ minBitRate="64000" maxBitRate="14000000"
+ minFrameWidth="176" maxFrameWidth="1920"
+ minFrameHeight="144" maxFrameHeight="1080"
+ minFrameRate="1" maxFrameRate="30" />
+
+ <VideoEncoderCap name="h263" enabled="true"
+ minBitRate="64000" maxBitRate="8000000"
+ minFrameWidth="176" maxFrameWidth="704"
+ minFrameHeight="144" maxFrameHeight="576"
+ minFrameRate="1" maxFrameRate="30" />
+
+ <VideoEncoderCap name="m4v" enabled="true"
+ minBitRate="64000" maxBitRate="10000000"
+ minFrameWidth="176" maxFrameWidth="1280"
+ minFrameHeight="144" maxFrameHeight="720"
+ minFrameRate="1" maxFrameRate="30" />
+
+ <AudioEncoderCap name="aac" enabled="true"
+ minBitRate="8000" maxBitRate="320000"
+ minSampleRate="8000" maxSampleRate="48000"
+ minChannels="1" maxChannels="1" />
+
+ <AudioEncoderCap name="amrwb" enabled="true"
+ minBitRate="6600" maxBitRate="23050"
+ minSampleRate="16000" maxSampleRate="16000"
+ minChannels="1" maxChannels="1" />
+
+ <AudioEncoderCap name="amrnb" enabled="true"
+ minBitRate="4750" maxBitRate="12200"
+ minSampleRate="8000" maxSampleRate="8000"
+ minChannels="1" maxChannels="1" />
+
+ <VideoDecoderCap name="wmv" enabled="false"/>
+ <AudioDecoderCap name="wma" enabled="false"/>
+</MediaSettings>
134 overlay/frameworks/base/core/res/res/values/config.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+
+ <!-- This device is not "voice capable"; it's data-only. -->
+ <bool name="config_voice_capable">false</bool>
+
+ <!-- This device does not allow sms service. -->
+ <bool name="config_sms_capable">false</bool>
+
+ <bool name="config_showNavigationBar">false</bool>
+
+ <string name="config_datause_iface">wlan0</string>
+
+ <bool name="config_batterySdCardAccessibility">true</bool>
+
+ <bool name="config_sf_limitedAlpha">true</bool>
+
+ <bool name="config_allowAllRotations">true</bool>
+
+ <bool name="config_sf_slowBlur">true</bool>
+
+ <bool name="config_automatic_brightness_available">true</bool>
+
+ <!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
+ The N entries of this array define N 1 zones as follows:
+
+ Zone 0: 0 <= LUX < array[0]
+ Zone 1: array[0] <= LUX < array[1]
+ ...
+ Zone N: array[N - 1] <= LUX < array[N]
+ Zone N + 1 array[N] <= LUX < infinity
+
+ Must be overridden in platform specific overlays -->
+ <integer-array name="config_autoBrightnessLevels">
+ <item>15</item>
+ <item>150</item>
+ <item>1500</item>
+ <item>15000</item>
+ </integer-array>
+
+ <!-- Array of output values for LCD backlight corresponding to the LUX values
+ in the config_autoBrightnessLevels array. This array should have size one greater
+ than the size of the config_autoBrightnessLevels array.
+ This must be overridden in platform specific overlays -->
+ <integer-array name="config_autoBrightnessLcdBacklightValues">
+ <item>42</item>
+ <item>96</item>
+ <item>150</item>
+ <item>196</item>
+ <item>255</item>
+ </integer-array>
+
+ <!-- Array of output values for button backlight corresponding to the LUX values
+ in the config_autoBrightnessLevels array. This array should have size one greater
+ than the size of the config_autoBrightnessLevels array.
+ This must be overridden in platform specific overlays -->
+ <integer-array name="config_autoBrightnessButtonBacklightValues">
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ </integer-array>
+
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ <item>"rndis0"</item>
+ </string-array>
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ <item>"bnep\\d"</item>
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ <item>1</item>
+ <item>7</item>
+ </integer-array>
+
+ <!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
+ <bool translatable="false" name="config_wifi_dual_band_support">true</bool>
+
+ <!-- Boolean indicating whether the wifi chipset has background scan support -->
+ <bool translatable="false" name="config_wifi_background_scan_support">true</bool>
+
+ <string name="config_networkLocationProvider">com.google.android.location.NetworkLocationProvider</string>
+
+ <string name="config_geocodeProvider">com.google.android.location.GeocodeProvider</string>
+ <!-- XXXXX NOTE THE FOLLOWING RESOURCES USE THE WRONG NAMING CONVENTION.
+ Please don't copy them, copy anything else. -->
+
+ <!-- This string array should be overridden by the device to present a list of network
+ attributes. This is used by the connectivity manager to decide which networks can coexist
+ based on the hardware -->
+ <!-- An Array of "[Connection name],[ConnectivityManager connection type],
+ [associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet] -->
+ <!-- the 5th element "resore-time" indicates the number of milliseconds to delay
+ before automatically restore the default connection. Set -1 if the connection
+ does not require auto-restore. -->
+ <!-- the 6th element indicates boot-time dependency-met value. -->
+ <string-array translatable="false" name="networkAttributes">
+ <item>"wifi,1,1,1,-1,true"</item>
+ <item>"bluetooth,7,7,0,-1,true"</item>
+ <item>"wifi_p2p,13,1,0,-1,false"</item>
+ </string-array>
+
+ <!-- This string array should be overridden by the device to present a list of radio
+ attributes. This is used by the connectivity manager to decide which networks can coexist
+ based on the hardware -->
+ <!-- An Array of "[ConnectivityManager connectionType],
+ [# simultaneous connection types]" -->
+ <string-array translatable="false" name="radioAttributes">
+ <item>"1,1"</item>
+ <item>"7,1"</item>
+ </string-array>
+
+</resources>
41 overlay/frameworks/base/core/res/res/xml/storage_list.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License")
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The <device> element should contain one or more <storage> elements.
+ Exactly one of these should have the attribute primary="true".
+ This storage will be the primary external storage and should have path="/mnt/sdcard".
+ Each storage should have both a path and description attribute set.
+ The following boolean attributes are optional:
+
+ primary: this storage is the primary external storage
+ removable: this is removable storage (for example, a real SD card)
+ emulated: the storage is emulated via the FUSE sdcard daemon
+ mtp-reserve: number of megabytes of storage MTP should reserve for free storage
+ (used for emulated storage that is shared with system's data partition)
+
+ A storage should not have both emulated and removable set to true
+-->
+
+<StorageList xmlns:android="http://schemas.android.com/apk/res/android">
+ <storage android:mountPoint="/mnt/sdcard"
+ android:storageDescription="@string/storage_internal"
+ android:primary="true"
+ android:emulated="true"
+ android:mtpReserve="100" />
+</StorageList>
27 overlay/frameworks/base/packages/SystemUI/res/values/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2009, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+
+ <!-- Whether we're using the tablet-optimized recents interface (we use this
+ value at runtime for some things) -->
+ <bool name="config_recents_interface_for_tablets">true</bool>
+</resources>
118 p4-common.mk
@@ -0,0 +1,118 @@
+#
+# Copyright (C) 2011 The Android Open-Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DEVICE_PACKAGE_OVERLAYS := $(LOCAL_PATH)/overlay
+
+# This device is xhdpi. However the platform doesn't
+# currently contain all of the bitmaps at xhdpi density so
+# we do this little trick to fall back to the hdpi version
+# if the xhdpi doesn't exist.
+#PRODUCT_AAPT_CONFIG := normal hdpi xhdpi xlarge sw600dp sw720dp
+#PRODUCT_AAPT_PREF_CONFIG := xlarge
+#PRODUCT_AAPT_PREF_CONFIG :=
+
+PRODUCT_COPY_FILES := \
+ $(LOCAL_PATH)/init.p3.rc:root/init.p3.rc \
+ $(LOCAL_PATH)/ueventd.p3.rc:root/ueventd.p3.rc \
+ $(LOCAL_PATH)/lpm.rc:root/lpm.rc \
+ $(LOCAL_PATH)/init.p3.usb.rc:root/init.p3.usb.rc
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/vold.fstab:system/etc/vold.fstab \
+ $(LOCAL_PATH)/media_profiles.xml:system/etc/media_profiles.xml \
+ $(LOCAL_PATH)/keylayout/sec_jack.kl:system/usr/keylayout/sec_jack.kl \
+ $(LOCAL_PATH)/keylayout/sec_key.kl:system/usr/keylayout/sec_key.kl \
+ $(LOCAL_PATH)/keylayout/sec_power_key.kl:system/usr/keylayout/sec_power_key.kl \
+ $(LOCAL_PATH)/keylayout/sec_keyboard.kl:system/usr/keylayout/sec_keyboard.kl \
+ $(LOCAL_PATH)/keylayout/Vendor_04e8_Product_7021.kl:system/usr/keylayout/Vendor_04e8_Product_7021.kl \
+ $(LOCAL_PATH)/sec_touchscreen.idc:system/usr/idc/sec_touchscreen.idc
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/gps.xml:system/etc/gps.xml \
+ $(LOCAL_PATH)/gps.conf:system/etc/gps.conf
+
+# LPM (from TW-UX 3.2)
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/lpm/lib/libQmageDecoder.so:system/lib/libQmageDecoder.so \
+ $(LOCAL_PATH)/lpm/bin/charging_mode:system/bin/charging_mode \
+ $(LOCAL_PATH)/lpm/bin/playlpm:system/bin/playlpm \
+ $(LOCAL_PATH)/lpm/media/battery_charging_0.qmg:system/media/battery_charging_0.qmg \
+ $(LOCAL_PATH)/lpm/media/battery_charging_20.qmg:system/media/battery_charging_20.qmg \
+ $(LOCAL_PATH)/lpm/media/battery_charging_40.qmg:system/media/battery_charging_40.qmg \
+ $(LOCAL_PATH)/lpm/media/battery_charging_60.qmg:system/media/battery_charging_60.qmg \
+ $(LOCAL_PATH)/lpm/media/battery_charging_80.qmg:system/media/battery_charging_80.qmg \
+ $(LOCAL_PATH)/lpm/media/battery_charging_100.qmg:system/media/battery_charging_100.qmg \
+ $(LOCAL_PATH)/lpm/media/battery_error.qmg:system/media/battery_error.qmg \
+ $(LOCAL_PATH)/lpm/media/chargingwarning.qmg:system/media/chargingwarning.qmg \
+ $(LOCAL_PATH)/lpm/media/Disconnected.qmg:system/media/Disconnected.qmg
+
+PRODUCT_PROPERTY_OVERRIDES := \
+ wifi.interface=wlan0 \
+ wifi.supplicant_scan_interval=15
+
+PRODUCT_PACKAGES += \
+ libinvensense_mpl
+
+PRODUCT_PACKAGES += \
+ audio.a2dp.default \
+ libaudioutils \
+ audio.primary.p3
+
+# These are the hardware-specific features
+PRODUCT_COPY_FILES += \
+ frameworks/base/data/etc/tablet_core_hardware.xml:system/etc/permissions/tablet_core_hardware.xml \
+ frameworks/base/data/etc/android.hardware.camera.xml:system/etc/permissions/android.hardware.camera.xml \
+ frameworks/base/data/etc/android.hardware.camera.front.xml:system/etc/permissions/android.hardware.camera.front.xml \
+ frameworks/base/data/etc/android.hardware.location.xml:system/etc/permissions/android.hardware.location.xml \
+ frameworks/base/data/etc/android.hardware.location.gps.xml:system/etc/permissions/android.hardware.location.gps.xml \
+ frameworks/base/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \
+ frameworks/base/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hardware.wifi.direct.xml \
+ frameworks/base/data/etc/android.hardware.sensor.proximity.xml:system/etc/permissions/android.hardware.sensor.proximity.xml \
+ frameworks/base/data/etc/android.hardware.sensor.light.xml:system/etc/permissions/android.hardware.sensor.light.xml \
+ frameworks/base/data/etc/android.hardware.sensor.gyroscope.xml:system/etc/permissions/android.hardware.sensor.gyroscope.xml \
+ frameworks/base/data/etc/android.hardware.sensor.accelerometer.xml:system/etc/permissions/android.hardware.sensor.accelerometer.xml \
+ frameworks/base/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
+ frameworks/base/data/etc/android.software.sip.voip.xml:system/etc/permissions/android.software.sip.voip.xml \
+ frameworks/base/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml \
+ frameworks/base/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb.host.xml \
+ packages/wallpapers/LivePicker/android.software.live_wallpaper.xml:system/etc/permissions/android.software.live_wallpaper.xml
+
+PRODUCT_CHARACTERISTICS := tablet,nosdcard
+
+PRODUCT_TAGS += dalvik.gc.type-precise
+
+PRODUCT_PACKAGES += \
+ librs_jni \
+ com.android.future.usb.accessory
+
+# Filesystem management tools
+PRODUCT_PACKAGES += \
+ make_ext4fs \
+ setup_fs
+
+DEVICE_PACKAGE_OVERLAYS := \
+ $(LOCAL_PATH)/overlay
+
+# for bugmailer
+ifneq ($(TARGET_BUILD_VARIANT),user)
+ PRODUCT_PACKAGES += send_bug
+ PRODUCT_COPY_FILES += \
+ system/extras/bugmailer/bugmailer.sh:system/bin/bugmailer.sh \
+ system/extras/bugmailer/send_bug:system/bin/send_bug
+endif
+
+$(call inherit-product, frameworks/base/build/tablet-dalvik-heap.mk)
+
59 recovery/init.rc
@@ -0,0 +1,59 @@
+on early-init
+ start ueventd
+
+on init
+ export PATH /sbin
+ export ANDROID_ROOT /system
+ export ANDROID_DATA /data
+ export EXTERNAL_STORAGE /sdcard
+
+ symlink /system/etc /etc
+
+ mkdir /boot
+ mkdir /sdcard
+ mkdir /sd-ext
+ mkdir /datadata
+ mkdir /emmc
+ mkdir /system
+ mkdir /data
+ mkdir /cache
+ mount /tmp /tmp tmpfs
+
+ write /sys/class/android_usb/android0/iSerial $ro.serialno
+ write /sys/class/android_usb/android0/iManufacturer $ro.product.manufacturer
+ write /sys/class/android_usb/android0/iProduct $ro.product.model
+
+on boot
+
+ ifup lo
+ hostname localhost
+ domainname localdomain
+
+ class_start default
+
+service ueventd /sbin/ueventd
+ critical
+
+service recovery /sbin/recovery
+
+service adbd /sbin/adbd recovery
+ disabled
+
+# Always start adbd on userdebug and eng builds
+on property:ro.debuggable=1
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 04e8
+ write /sys/class/android_usb/android0/idProduct 6860
+ write /sys/class/android_usb/android0/functions adb
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state adb
+
+# Restart adbd so it can run as root
+ setprop service.adb.root 1
+ write /sys/class/android_usb/android0/enable 0
+ restart adbd
+ write /sys/class/android_usb/android0/enable 1
+
+# Prefer tar
+ setprop ro.cwm.prefer_tar true
49 recovery/recovery_ui.c
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <linux/input.h>
+
+#include "recovery_ui.h"
+#include "common.h"
+#include "extendedcommands.h"
+
+int device_toggle_display(volatile char* key_pressed, int key_code) {
+ int alt = key_pressed[KEY_POWER];
+ if (alt && key_code == KEY_VOLUMEUP)
+ return 1;
+ // allow toggling of the display if the correct key is pressed, and the display toggle is allowed or the display is currently off
+ if (ui_get_showing_back_button()) {
+ return get_allow_toggle_display() && (key_code == KEY_POWER && key_code == KEY_VOLUMEUP);
+ }
+ return get_allow_toggle_display() && (key_code == KEY_POWER && key_code == KEY_VOLUMEUP);
+}
+
+int device_handle_key(int key_code, int visible) {
+ if (visible) {
+ switch (key_code) {
+ case KEY_VOLUMEUP:
+ return HIGHLIGHT_DOWN;
+
+ case KEY_VOLUMEDOWN:
+ return HIGHLIGHT_UP;
+
+ case KEY_POWER:
+ return SELECT_ITEM;
+ }
+ }
+
+ return NO_ACTION;
+}
113 releasetools.py
@@ -0,0 +1,113 @@
+# Copyright (C) 2009 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Emit commands needed for Prime during OTA installation
+(installing the bootloader and radio images)."""
+
+import common
+
+def FullOTA_InstallEnd(info):
+ try:
+ bootloader_img = info.input_zip.read("RADIO/bootloader.img")
+ except KeyError:
+ print "no bootloader.img in target_files; skipping install"
+ else:
+ WriteBootloader(info, bootloader_img)
+
+ try:
+ radio_img = info.input_zip.read("RADIO/radio.img")
+ except KeyError:
+ print "no radio.img in target_files; skipping install"
+ else:
+ WriteRadio(info, radio_img)
+
+def IncrementalOTA_VerifyEnd(info):
+ try:
+ target_radio_img = info.target_zip.read("RADIO/radio.img")
+ source_radio_img = info.source_zip.read("RADIO/radio.img")
+ except KeyError:
+ # No source or target radio. Nothing to verify
+ pass
+ else:
+ if source_radio_img != target_radio_img:
+ info.script.CacheFreeSpaceCheck(len(source_radio_img))
+ radio_type, radio_device = common.GetTypeAndDevice("/radio", info.info_dict)
+ info.script.PatchCheck("%s:%s:%d:%s:%d:%s" % (
+ radio_type, radio_device,
+ len(source_radio_img), common.sha1(source_radio_img).hexdigest(),
+ len(target_radio_img), common.sha1(target_radio_img).hexdigest()))
+
+def IncrementalOTA_InstallEnd(info):
+ try:
+ target_bootloader_img = info.target_zip.read("RADIO/bootloader.img")
+ try:
+ source_bootloader_img = info.source_zip.read("RADIO/bootloader.img")
+ except KeyError:
+ source_bootloader_img = None
+
+ if source_bootloader_img == target_bootloader_img:
+ print "bootloader unchanged; skipping"
+ else:
+ WriteBootloader(info, target_bootloader_img)
+ except KeyError:
+ print "no bootloader.img in target target_files; skipping install"
+
+ try:
+ target_radio_img = info.target_zip.read("RADIO/radio.img")
+ try:
+ source_radio_img = info.source_zip.read("RADIO/radio.img")
+ except KeyError:
+ source_radio_img = None
+
+ WriteRadio(info, target_radio_img, source_radio_img)
+ except KeyError:
+ print "no radio.img in target target_files; skipping install"
+
+def WriteBootloader(info, bootloader_img):
+ common.ZipWriteStr(info.output_zip, "bootloader.img", bootloader_img)
+ fstab = info.info_dict["fstab"]
+
+ info.script.Print("Writing bootloader...")
+ info.script.AppendExtra('''assert(samsung.write_bootloader(
+ package_extract_file("bootloader.img"), "%s", "%s"));''' % \
+ (fstab["/xloader"].device, fstab["/sbl"].device))
+
+def WriteRadio(info, target_radio_img, source_radio_img=None):
+ tf = common.File("radio.img", target_radio_img)
+ if source_radio_img is None:
+ tf.AddToZip(info.output_zip)
+ info.script.Print("Writing radio...")
+ info.script.WriteRawImage("/radio", tf.name)
+ else:
+ sf = common.File("radio.img", source_radio_img);
+ if tf.sha1 == sf.sha1:
+ print "radio image unchanged; skipping"
+ else:
+ diff = common.Difference(tf, sf)
+ common.ComputeDifferences([diff])
+ _, _, d = diff.GetPatch()
+ if d is None or len(d) > tf.size * common.OPTIONS.patch_threshold:
+ # computing difference failed, or difference is nearly as
+ # big as the target: simply send the target.
+ tf.AddToZip(info.output_zip)
+ info.script.Print("Writing radio...")
+ info.script.WriteRawImage("/radio", tf.name)
+ else:
+ common.ZipWriteStr(info.output_zip, "radio.img.p", d)
+ info.script.Print("Patching radio...")
+ radio_type, radio_device = common.GetTypeAndDevice("/radio", info.info_dict)
+ info.script.ApplyPatch(
+ "%s:%s:%d:%s:%d:%s" % (radio_type, radio_device,
+ sf.size, sf.sha1, tf.size, tf.sha1),
+ "-", tf.size, tf.sha1, sf.sha1, "radio.img.p")
1  sec_touchscreen.idc
@@ -0,0 +1 @@
+touch.deviceType = touchScreen
42 ueventd.p3.rc
@@ -0,0 +1,42 @@
+/dev/knvmap 0660 system system
+/dev/nvmap 0666 system system
+/dev/tegra_avp 0660 media media
+/dev/tegra_rpc 0660 media media
+/dev/tegra_sema 0660 media media
+/dev/tegra_mediaserver 0660 media media
+/dev/s5k5ccgx 0660 media camera
+/dev/s5k5bbgx 0660 media camera
+/dev/tegra_camera 0660 media camera
+/dev/spdif* 0660 system audio
+/dev/mpu 0660 system system
+/dev/mpuirq 0660 system system
+/dev/nvhdcp0 0660 media media
+/dev/nvhdcp1 0660 media media
+/dev/video0 0666 media camera
+/dev/video1 0666 media camera
+/dev/tf_driver 0666 system system
+/dev/smdctl 0660 system radio
+/dev/smddown 0660 system radio
+/dev/smdipc 0660 system radio
+/dev/smdrfs 0660 system radio
+/dev/storage 0660 system radio
+/dev/block/mmcblk0 0640 root radio
+
+# misc partition
+/dev/block/mmcblk0p6 0660 system radio
+# modem partition
+/dev/block/mmcblk0p7 0660 system radio
+
+# for GPS
+/dev/ttyHS0 0600 gps gps
+
+# for MPL
+/dev/mpu 0660 system system
+/dev/mpuirq 0660 system system
+
+# for AKM8975
+/dev/akm8975 0660 system system
+
+# for usb printer
+/dev/bus/usb/* 0660 system usb
+/dev/usb/lp* 0660 system usb
12 vold.fstab
@@ -0,0 +1,12 @@
+## Vold 2.0.1 fstab for P4
+
+#######################
+## Regular device mount
+##
+## Format: dev_mount <label> <mount_point> <part> <devtype><sysfs_path1...>
+## label - Label for the volume
+## mount_point - Where the volume will be mounted
+## part - Partition # (1 based), or 'auto' for first usable partition.
+## <sysfs_path> - List of sysfs paths to source devices
+######################
+dev_mount sdcard /mnt/sdcard auto /devices/platform/sdhci-tegra.2/mmc_host/mmc1
Please sign in to comment.
Something went wrong with that request. Please try again.