diff --git a/AndroidProducts.mk b/AndroidProducts.mk index 42fc949..a55114e 100644 --- a/AndroidProducts.mk +++ b/AndroidProducts.mk @@ -14,4 +14,6 @@ # limitations under the License. # -PRODUCT_MAKEFILES := $(LOCAL_DIR)/aosp_deb.mk +PRODUCT_MAKEFILES := \ + $(LOCAL_DIR)/aosp_deb.mk \ + $(LOCAL_DIR)/full_deb.mk diff --git a/aosp_deb.mk b/aosp_deb.mk index 6845af7..2d04509 100644 --- a/aosp_deb.mk +++ b/aosp_deb.mk @@ -17,8 +17,6 @@ # Sample: This is where we'd set a backup provider if we had one # $(call inherit-product, device/sample/products/backup_overlay.mk) -# Inherit from hardware-specific part of the product configuration -$(call inherit-product, device/asus/deb/device.mk) # Inherit from the common Open Source product configuration $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk) @@ -26,6 +24,11 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk) PRODUCT_NAME := aosp_deb PRODUCT_DEVICE := deb PRODUCT_BRAND := Android -PRODUCT_MODEL := AOSP on Deb +PRODUCT_MODEL := Nexus 7 PRODUCT_MANUFACTURER := ASUS -PRODUCT_RESTRICT_VENDOR_FILES := true +PRODUCT_RESTRICT_VENDOR_FILES := false + +# Inherit from hardware-specific part of the product configuration +$(call inherit-product, device/asus/deb/device.mk) +$(call inherit-product-if-exists, vendor/asus/deb/device-vendor.mk) +#$(call inherit-product-if-exists, vendor/qcom/proprietary/common/config/device-vendor.mk) diff --git a/cm.dependencies b/cm.dependencies new file mode 100644 index 0000000..f1da8d6 --- /dev/null +++ b/cm.dependencies @@ -0,0 +1,10 @@ +[ + { + "repository": "android_kernel_google_msm", + "target_path": "kernel/google/msm" + }, + { + "repository": "android_device_asus_flo", + "target_path": "device/asus/flo" + } +] diff --git a/cm.mk b/cm.mk new file mode 100644 index 0000000..8aa0e03 --- /dev/null +++ b/cm.mk @@ -0,0 +1,26 @@ + +# Boot animation +TARGET_SCREEN_HEIGHT := 1920 +TARGET_SCREEN_WIDTH := 1080 + +# Inherit some common CM stuff. +$(call inherit-product, vendor/cm/config/common_full_tablet_wifionly.mk) + +# Inherit GSM stuff +$(call inherit-product, vendor/cm/config/gsm.mk) + +# Enhanced NFC +$(call inherit-product, vendor/cm/config/nfc_enhanced.mk) + +# Inherit device configuration +$(call inherit-product, device/asus/deb/full_deb.mk) + +## Device identifier. This must come after all inclusions +PRODUCT_DEVICE := deb +PRODUCT_NAME := cm_deb +PRODUCT_BRAND := google +PRODUCT_MODEL := Nexus 7 +PRODUCT_MANUFACTURER := asus + +PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=razorg BUILD_FINGERPRINT=google/razorg/deb:4.3.1/JLS36I/841738:user/release-keys PRIVATE_BUILD_DESC="razorg-user 4.3.1 JLS36I 841738 release-keys" + diff --git a/extract-files.sh b/extract-files.sh new file mode 100755 index 0000000..8de30b7 --- /dev/null +++ b/extract-files.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +set -e + +VENDOR=asus +DEVICE=deb + +if [ $# -eq 0 ]; then + SRC=adb +else + if [ $# -eq 1 ]; then + SRC=$1 + else + echo "$0: bad number of arguments" + echo "" + echo "usage: $0 [PATH_TO_EXPANDED_ROM]" + echo "" + echo "If PATH_TO_EXPANDED_ROM is not specified, blobs will be extracted from" + echo "the device using adb pull." + exit 1 + fi +fi + +BASE=../../../vendor/$VENDOR/$DEVICE/proprietary +rm -rf $BASE/* + +for FILE in `cat proprietary-blobs.txt | grep -v ^# | grep -v ^$ | sed -e 's#^/system/##g'`; do + DIR=`dirname $FILE` + if [ ! -d $BASE/$DIR ]; then + mkdir -p $BASE/$DIR + fi + if [ "$SRC" = "adb" ]; then + adb pull /system/$FILE $BASE/$FILE + else + cp $SRC/system/$FILE $BASE/$FILE + fi + +done + +./setup-makefiles.sh diff --git a/fstab.deb b/fstab.deb index 84cc7d0..35a4283 100644 --- a/fstab.deb +++ b/fstab.deb @@ -3,11 +3,13 @@ # The filesystem that contains the filesystem checker binary (typically /system) cannot # specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK -/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,barrier=1 wait -/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered wait,check -/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc wait,check,encryptable=/dev/block/platform/msm_sdcc.1/by-name/metadata -/dev/block/platform/msm_sdcc.1/by-name/persist /persist ext4 nosuid,nodev,barrier=1,data=ordered,nodelalloc wait +/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,barrier=1 wait +/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc,errors=panic wait,check +/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc,errors=panic wait,check,encryptable=/dev/block/platform/msm_sdcc.1/by-name/metadata +/dev/block/platform/msm_sdcc.1/by-name/persist /persist ext4 nosuid,nodev,barrier=1,data=ordered,nodelalloc wait /dev/block/platform/msm_sdcc.1/by-name/radio /firmware vfat ro,uid=1000,gid=1000,fmask=0337,dmask=0227,iocharset=iso8859-1,shortname=mixed,errors=remount-ro wait -/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults defaults -/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults defaults -/dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults + +/devices/platform/msm_hsusb_host/usb /storage/usbdisk0 auto default voldmanaged=sda:auto diff --git a/full_deb.mk b/full_deb.mk new file mode 100644 index 0000000..f3ba942 --- /dev/null +++ b/full_deb.mk @@ -0,0 +1,20 @@ +# +# Copyright 2013 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. +# +$(call inherit-product, device/asus/deb/aosp_deb.mk) + +PRODUCT_NAME := full_deb + +$(call inherit-product-if-exists, vendor/asus/deb/deb-vendor.mk) diff --git a/init.deb.rc b/init.deb.rc index b1494ee..684d6c5 100644 --- a/init.deb.rc +++ b/init.deb.rc @@ -24,16 +24,22 @@ on init # See storage config details at http://source.android.com/tech/storage/ mkdir /mnt/shell/emulated 0700 shell shell mkdir /storage/emulated 0555 root root - mkdir /storage/emulated/legacy 0555 root root + + # USB storage + mkdir /storage/usbdisk0 0000 system system export EXTERNAL_STORAGE /storage/emulated/legacy export EMULATED_STORAGE_SOURCE /mnt/shell/emulated export EMULATED_STORAGE_TARGET /storage/emulated + export SECONDARY_STORAGE /storage/usbdisk0 # Support legacy paths symlink /storage/emulated/legacy /sdcard symlink /storage/emulated/legacy /mnt/sdcard symlink /storage/emulated/legacy /storage/sdcard0 + symlink /mnt/shell/emulated/0 /storage/emulated/legacy + symlink /storage/usbdisk0 /usbdisk0 + symlink /storage/usbdisk0 /mnt/usbdisk0 on init # Set permissions for persist partition @@ -122,8 +128,11 @@ on boot # Assign TCP buffer thresholds to be ceiling value of technology maximums # Increased technology maximums should be reflected here. - write /proc/sys/net/core/rmem_max 1220608 - write /proc/sys/net/core/wmem_max 1220608 + write /proc/sys/net/core/rmem_max 2097152 + write /proc/sys/net/core/wmem_max 2097152 + +# Tune buffersize for higher Miracast throughput + setprop net.tcp.buffersize.wifi 524288,1048576,2560000,524288,1048576,2560000 # msm specific files that need to be created on /data on post-fs-data @@ -185,6 +194,12 @@ on post-fs-data # Modify from 777 (for camera calibration) to 775 chmod 775 /persist/camera_calibration + # Modify from 777 (for lightsensor) to 775 + chmod 775 /persist/lightsensor + + # Modify from 777 (for lightsensor calibration data) to 664 + chmod 664 /persist/lightsensor/AL3010_Config.ini + chmod 664 /persist/ssn chmod 664 /persist/60isn @@ -222,10 +237,22 @@ on post-fs-data write /sys/module/rpm_resources/enable_low_power/pxo 1 write /sys/module/rpm_resources/enable_low_power/vdd_dig 1 write /sys/module/rpm_resources/enable_low_power/vdd_mem 1 + write /sys/module/pm_8x60/modes/cpu0/retention/idle_enabled 1 + write /sys/module/pm_8x60/modes/cpu1/retention/idle_enabled 1 + write /sys/module/pm_8x60/modes/cpu2/retention/idle_enabled 1 + write /sys/module/pm_8x60/modes/cpu3/retention/idle_enabled 1 write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu2/standalone_power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu3/standalone_power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/idle_enabled 1 + write /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/idle_enabled 1 + write /sys/module/pm_8x60/modes/cpu2/standalone_power_collapse/idle_enabled 1 + write /sys/module/pm_8x60/modes/cpu3/standalone_power_collapse/idle_enabled 1 write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1 write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "ondemand" write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "ondemand" @@ -304,11 +331,17 @@ service bridgemgrd /system/bin/bridgemgrd user radio group radio +service qcom-c_main-sh /system/bin/sh /init.qcom.class_main.sh + class main + user root + oneshot + # QMUX must be in multiple groups to support external process connections service qmuxd /system/bin/qmuxd class main user radio group radio audio bluetooth gps net_bt_stack + disabled service ks_checker /system/bin/sh /system/etc/kickstart_checker.sh class core @@ -337,6 +370,7 @@ on property:ril.asus_debugger_running=1 service netmgrd /system/bin/netmgrd class main + disabled service sensors /system/bin/sensors.qcom class late_start @@ -401,6 +435,16 @@ service iprenew_bt-pan /system/bin/dhcpcd -n disabled oneshot +service dhcpcd_eth0 /system/bin/dhcpcd -ABDKL + class main + disabled + oneshot + +service iprenew_eth0 /system/bin/dhcpcd -n + class main + disabled + oneshot + on property:ro.data.large_tcp_window_size=true # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB) write /proc/sys/net/ipv4/tcp_adv_win_scale 1 @@ -412,11 +456,6 @@ service charger /charger service sdcard /system/bin/sdcard /data/media /mnt/shell/emulated 1023 1023 class late_start -# Binding fuse mount point to /storage/emulated/legacy -on property:init.svc.sdcard=running - wait /mnt/shell/emulated/0 - mount none /mnt/shell/emulated/0 /storage/emulated/legacy bind - service thermald /system/bin/thermald class main @@ -464,6 +503,22 @@ service diag_mdlog /system/bin/logwrapper /system/bin/diag_mdlog -s 100 class late_start disabled +service qrngd /system/bin/qrngd -f + class main + user root + group root + +# on property:gsm.sim.state=READY +# start diag_mdlog + +on property:ro.boot.baseband=mdm + start qmuxd + start netmgrd + +on property:ro.boot.baseband=apq + setprop ro.radio.noril yes + stop ril-daemon + on property:init.svc.surfaceflinger=running start ppd diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index 55c30fa..07e180a 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -183,6 +183,7 @@ "mobile_ims,11,0,2,60000,true" "mobile_cbs,12,0,2,60000,true" "bluetooth,7,7,2,-1,true" + "ethernet,9,9,9,-1,true" @@ -200,6 +201,7 @@ "1,1" "0,1" "7,1" + "9,1" @@ -263,4 +265,16 @@ The default is false. --> true + + 0 + diff --git a/overlay/frameworks/base/core/res/res/xml/storage_list.xml b/overlay/frameworks/base/core/res/res/xml/storage_list.xml index 344fe1e..66d7953 100644 --- a/overlay/frameworks/base/core/res/res/xml/storage_list.xml +++ b/overlay/frameworks/base/core/res/res/xml/storage_list.xml @@ -24,5 +24,12 @@ + + + diff --git a/overlay/packages/apps/Trebuchet/res/values/config.xml b/overlay/packages/apps/Trebuchet/res/values/config.xml new file mode 100644 index 0000000..3b82809 --- /dev/null +++ b/overlay/packages/apps/Trebuchet/res/values/config.xml @@ -0,0 +1,3 @@ + + true + diff --git a/proprietary-blobs.txt b/proprietary-blobs.txt index 24b30a1..4350d73 100644 --- a/proprietary-blobs.txt +++ b/proprietary-blobs.txt @@ -42,13 +42,7 @@ /system/bin/thermald /system/bin/usbhub /system/bin/usbhub_init -/system/etc/apns-conf.xml /system/etc/DxHDCP.cfg -/system/etc/firmware/tzapps.b00 -/system/etc/firmware/tzapps.b01 -/system/etc/firmware/tzapps.b02 -/system/etc/firmware/tzapps.b03 -/system/etc/firmware/tzapps.mdt /system/etc/firmware/vidc.b00 /system/etc/firmware/vidc.b01 /system/etc/firmware/vidc.b02 @@ -129,6 +123,7 @@ /system/lib/libsensor_reg.so /system/lib/libsensor_user_cal.so /system/lib/libstagefright_hdcp.so +/system/lib/libWVphoneAPI.so /system/lib/libxml.so /system/vendor/firmware/a300_pfp.fw /system/vendor/firmware/a300_pm4.fw @@ -177,6 +172,7 @@ /system/vendor/firmware/wcnss.b04 /system/vendor/firmware/wcnss.b05 /system/vendor/firmware/wcnss.mdt +/system/vendor/lib/drm/libdrmwvmplugin.so /system/vendor/lib/libdrmdecrypt.so /system/vendor/lib/libgemini.so /system/vendor/lib/libimage-jpeg-enc-omx-comp.so @@ -199,3 +195,7 @@ /system/vendor/lib/libmmstillomx.so /system/vendor/lib/liboemcamera.so /system/vendor/lib/libqomx_jpegenc.so +/system/vendor/lib/libwvdrm_L1.so +/system/vendor/lib/libwvm.so +/system/vendor/lib/libWVStreamControlAPI_L1.so +/system/vendor/lib/mediadrm/libwvdrmengine.so diff --git a/releasetools.py b/releasetools.py index ffb1baf..6f485c1 100644 --- a/releasetools.py +++ b/releasetools.py @@ -22,6 +22,12 @@ def FullOTA_InstallEnd(info): else: print "no radio.img in target_files; skipping install" + DDR_img = FindDDR(info.input_zip) + if DDR_img: + WriteDDR(info, DDR_img) + else: + print "no DDR.bin in target_files; skipping install" + def IncrementalOTA_VerifyEnd(info): target_radio_img = FindRadio(info.target_zip) @@ -51,6 +57,13 @@ def IncrementalOTA_InstallEnd(info): except KeyError: print "no bootloader.img in target target_files; skipping install" + df = FindDDR(info.target_zip) + if not df: + print "no DDR.bin in target target_files; skipping install" + else: + df = common.File("DDR.bin", df) + WriteDDR(info, df.data) + tf = FindRadio(info.target_zip) if not tf: # failed to read TARGET radio image: don't include any radio in update. @@ -94,6 +107,18 @@ def WriteRadio(info, radio_img): info.script.AppendExtra( 'package_extract_file("radio.img", "%s");' % (device,)) +def FindDDR(zipfile): + try: + return zipfile.read("RADIO/DDR.bin") + except KeyError: + return None + + +def WriteDDR(info, DDR_img): + info.script.Print("Writing DDR...") + common.ZipWriteStr(info.output_zip, "DDR.bin", DDR_img) + info.script.AppendExtra( + 'package_extract_file("DDR.bin", "/dev/block/platform/msm_sdcc.1/by-name/DDR");' ) # /* msm8960 bootloader.img format */ # diff --git a/setup-makefiles.sh b/setup-makefiles.sh new file mode 100755 index 0000000..607f076 --- /dev/null +++ b/setup-makefiles.sh @@ -0,0 +1,91 @@ +#!/bin/sh + +VENDOR=asus +DEVICE=deb +OUTDIR=vendor/$VENDOR/$DEVICE +MAKEFILE=../../../$OUTDIR/$DEVICE-vendor-blobs.mk + +(cat << EOF) > $MAKEFILE +# Copyright (C) 2012 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 +# +# 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 file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh + +PRODUCT_COPY_FILES += \\ +EOF + +LINEEND=" \\" +COUNT=`cat proprietary-blobs.txt | grep -v ^# | grep -v ^$ | wc -l | awk {'print $1'}` +for FILE in `cat proprietary-blobs.txt | grep -v ^# | grep -v ^$ | sed -e 's#^/system/##g'`; do + COUNT=`expr $COUNT - 1` + if [ $COUNT = "0" ]; then + LINEEND="" + fi + echo " $OUTDIR/proprietary/$FILE:system/$FILE$LINEEND" >> $MAKEFILE +done + +(cat << EOF) > ../../../$OUTDIR/$DEVICE-vendor.mk +# Copyright (C) 2012 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 +# +# 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 file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh + +# Live wallpaper packages +PRODUCT_PACKAGES := \\ + LiveWallpapers \\ + LiveWallpapersPicker \\ + MagicSmokeWallpapers \\ + VisualizationWallpapers \\ + librs_jni + +# Publish that we support the live wallpaper feature. +PRODUCT_COPY_FILES := \\ + packages/wallpapers/LivePicker/android.software.live_wallpaper.xml:/system/etc/permissions/android.software.live_wallpaper.xml + +# Pick up overlay for features that depend on non-open-source files +DEVICE_PACKAGE_OVERLAYS := vendor/$VENDOR/$DEVICE/overlay + +\$(call inherit-product, vendor/$VENDOR/$DEVICE/$DEVICE-vendor-blobs.mk) +EOF + +(cat << EOF) > ../../../$OUTDIR/BoardConfigVendor.mk +# Copyright (C) 2012 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 +# +# 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 file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh + +USE_CAMERA_STUB := false +EOF