diff --git a/Android.mk b/Android.mk index d9bbb76..236e1a0 100755 --- a/Android.mk +++ b/Android.mk @@ -16,11 +16,11 @@ ifeq ($(TARGET_BOOTLOADER_BOARD_NAME),htcleo) LOCAL_PATH := $(my-dir) subdir_makefiles := \ - $(LOCAL_PATH)/libreference-ril/Android.mk \ $(LOCAL_PATH)/libsensors/Android.mk \ $(LOCAL_PATH)/liblights/Android.mk \ - $(LOCAL_PATH)/libgps/Android.mk \ - $(LOCAL_PATH)/libhtc_ril_wrapper/Android.mk + $(LOCAL_PATH)/libgps/Android.mk +# $(LOCAL_PATH)/libreference-ril/Android.mk \ +# $(LOCAL_PATH)/libhtc_ril_wrapper/Android.mk include $(subdir_makefiles) diff --git a/AndroidBoard.mk b/AndroidBoard.mk index 5c100aa..d7c1625 100755 --- a/AndroidBoard.mk +++ b/AndroidBoard.mk @@ -25,12 +25,12 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -ALL_PREBUILT += $(INSTALLED_KERNEL_TARGET) - -file := $(TARGET_RECOVERY_ROOT_OUT)/sbin/postrecoveryboot.sh -ALL_PREBUILT += $(file) -$(file) : $(LOCAL_PATH)/postrecoveryboot.sh | $(ACP) - $(transform-prebuilt-to-target) +#ALL_PREBUILT += $(INSTALLED_KERNEL_TARGET) +# +#file := $(TARGET_RECOVERY_ROOT_OUT)/sbin/postrecoveryboot.sh +#ALL_PREBUILT += $(file) +#$(file) : $(LOCAL_PATH)/postrecoveryboot.sh | $(ACP) +# $(transform-prebuilt-to-target) # include the non-open-source counterpart to this file -include vendor/htc/leo/AndroidBoardVendor.mk diff --git a/BoardConfig.mk b/BoardConfig.mk index 3fb3526..83fe080 100755 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -88,7 +88,7 @@ TARGET_CUSTOM_RELEASETOOL := device/htc/leo/releasetools/squisher BOARD_BOOTIMAGE_PARTITION_SIZE := 0x00500000 BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x00500000 -BOARD_SYSTEMIMAGE_PARTITION_SIZE := 0x09600000 # limited so we enforce room to grow +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 0x0a500000 # limited so we enforce room to grow BOARD_USERDATAIMAGE_PARTITION_SIZE := 0x0d900000 BOARD_FLASH_BLOCK_SIZE := 131072 @@ -103,3 +103,4 @@ BOARD_VENDOR_QCOM_GPS_LOC_API_AMSS_VERSION := 3200 TARGET_PREBUILT_RECOVERY_KERNEL := device/htc/leo/prebuilt/recovery_kernel -include device/htc/7x30-recovery/BoardConfigCommon.mk +TARGET_PROVIDES_INIT_RC := true diff --git a/leo.mk b/leo.mk index 323421f..ee5abf2 100755 --- a/leo.mk +++ b/leo.mk @@ -25,6 +25,7 @@ PRODUCT_COPY_FILES += \ device/htc/leo/prebuilt/init.htcleo.rc:root/init.htcleo.rc \ device/htc/leo/prebuilt/ueventd.htcleo.rc:root/ueventd.htcleo.rc \ + device/htc/leo/prebuilt/init.rc:root/init.rc \ # we have enough storage space to hold precise GC data PRODUCT_TAGS += dalvik.gc.type-precise @@ -86,7 +87,7 @@ PRODUCT_COPY_FILES += \ #GSM APN LIST PRODUCT_COPY_FILES += \ - vendor/cyanogen/prebuilt/common/etc/apns-conf.xml:system/etc/apns-conf.xml + development/data/etc/apns-conf.xml:system/etc/apns-conf.xml # kernel modules PRODUCT_COPY_FILES += \ @@ -118,7 +119,7 @@ PRODUCT_COPY_FILES += \ $(call inherit-product, device/htc/leo/media_a1026.mk) # stuff common to all HTC phones -$(call inherit-product, device/htc/common/common.mk) +#$(call inherit-product, device/htc/common/common.mk) PRODUCT_NAME := htc_leo PRODUCT_DEVICE := leo diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml index 7f224d7..d570d1f 100644 --- a/overlay/frameworks/base/core/res/res/values/config.xml +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -150,11 +150,12 @@ - + + @@ -181,11 +184,13 @@ false + diff --git a/overlay/packages/apps/Phone/res/values/config.xml b/overlay/packages/apps/Phone/res/values/config.xml index f4a5d45..32d3cd3 100644 --- a/overlay/packages/apps/Phone/res/values/config.xml +++ b/overlay/packages/apps/Phone/res/values/config.xml @@ -18,14 +18,14 @@ - true - true + + - false + true diff --git a/overlay/packages/apps/Settings/res/values/bools.xml b/overlay/packages/apps/Settings/res/values/bools.xml index 9697c07..ee25c1c 100644 --- a/overlay/packages/apps/Settings/res/values/bools.xml +++ b/overlay/packages/apps/Settings/res/values/bools.xml @@ -17,7 +17,7 @@ - true + true diff --git a/prebuilt/init.rc b/prebuilt/init.rc new file mode 100644 index 0000000..6da397f --- /dev/null +++ b/prebuilt/init.rc @@ -0,0 +1,484 @@ +on early-init + # Set init and its forked children's oom_adj. + write /proc/1/oom_adj -16 + + start ueventd + +# create mountpoints + mkdir /mnt 0775 root system + +on init + +sysclktz 0 + +loglevel 3 + +# setup the global environment + export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin + export LD_LIBRARY_PATH /vendor/lib:/system/lib + export ANDROID_BOOTLOGO 1 + 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/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/filterfw.jar + +# Backward compatibility + symlink /system/etc /etc + symlink /sys/kernel/debug /d + +# Right now vendor lives on the same filesystem as system, +# but someday that may change. + symlink /system/vendor /vendor + +# Create cgroup mount point for cpu accounting + mkdir /acct + mount cgroup none /acct cpuacct + mkdir /acct/uid + + mkdir /system + mkdir /data 0771 system system + mkdir /cache 0770 system cache + mkdir /config 0500 root root + + # Directory for putting things only root should see. + mkdir /mnt/secure 0700 root root + + # Directory for staging bindmounts + mkdir /mnt/secure/staging 0700 root root + + # Directory-target for where the secure container + # imagefile directory will be bind-mounted + mkdir /mnt/secure/asec 0700 root root + + # Secure container public mount points. + mkdir /mnt/asec 0700 root system + mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000 + + # Filesystem image public mount points. + mkdir /mnt/obb 0700 root system + mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000 + + write /proc/sys/kernel/panic_on_oops 1 + write /proc/sys/kernel/hung_task_timeout_secs 0 + write /proc/cpu/alignment 4 + write /proc/sys/kernel/sched_latency_ns 10000000 + write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000 + write /proc/sys/kernel/sched_compat_yield 1 + write /proc/sys/kernel/sched_child_runs_first 0 + +# Create cgroup mount points for process groups + mkdir /dev/cpuctl + mount cgroup none /dev/cpuctl cpu + chown system system /dev/cpuctl + chown system system /dev/cpuctl/tasks + chmod 0777 /dev/cpuctl/tasks + write /dev/cpuctl/cpu.shares 1024 + + mkdir /dev/cpuctl/fg_boost + chown system system /dev/cpuctl/fg_boost/tasks + chmod 0777 /dev/cpuctl/fg_boost/tasks + write /dev/cpuctl/fg_boost/cpu.shares 1024 + + mkdir /dev/cpuctl/bg_non_interactive + chown system system /dev/cpuctl/bg_non_interactive/tasks + chmod 0777 /dev/cpuctl/bg_non_interactive/tasks + # 5.0 % + write /dev/cpuctl/bg_non_interactive/cpu.shares 52 + +# Allow everybody to read the xt_qtaguid resource tracking misc dev. +# This is needed by any process that uses socket tagging. + chmod 0644 /dev/xt_qtaguid + +on fs +# mount mtd partitions + # Mount /system rw first to give the filesystem a chance to save a checkpoint + mount yaffs2 mtd@system /system + mount yaffs2 mtd@system /system ro remount + mount yaffs2 mtd@userdata /data nosuid nodev + mount yaffs2 mtd@cache /cache nosuid nodev + +on post-fs + # once everything is setup, no need to modify / + mount rootfs rootfs / ro remount + + # We chown/chmod /cache again so because mount is run as root + defaults + chown system cache /cache + chmod 0770 /cache + + # This may have been created by the recovery system with odd permissions + chown system cache /cache/recovery + chmod 0770 /cache/recovery + + #change permissions on vmallocinfo so we can grab it from bugreports + chown root log /proc/vmallocinfo + chmod 0440 /proc/vmallocinfo + + #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks + chown root system /proc/kmsg + chmod 0440 /proc/kmsg + chown root system /proc/sysrq-trigger + chmod 0220 /proc/sysrq-trigger + + # create the lost+found directories, so as to enforce our permissions + mkdir /cache/lost+found 0770 root root + +on post-fs-data + # We chown/chmod /data again so because mount is run as root + defaults + chown system system /data + chmod 0771 /data + + # Create dump dir and collect dumps. + # Do this before we mount cache so eventually we can use cache for + # storing dumps on platforms which do not have a dedicated dump partition. + mkdir /data/dontpanic 0750 root log + + # Collect apanic data, free resources and re-arm trigger + copy /proc/apanic_console /data/dontpanic/apanic_console + chown root log /data/dontpanic/apanic_console + chmod 0640 /data/dontpanic/apanic_console + + copy /proc/apanic_threads /data/dontpanic/apanic_threads + chown root log /data/dontpanic/apanic_threads + chmod 0640 /data/dontpanic/apanic_threads + + write /proc/apanic_console 1 + + # create basic filesystem structure + mkdir /data/misc 01771 system misc + mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth + mkdir /data/misc/bluetooth 0770 system system + mkdir /data/misc/keystore 0700 keystore keystore + mkdir /data/misc/keychain 0771 system system + mkdir /data/misc/vpn 0770 system vpn + mkdir /data/misc/systemkeys 0700 system system + # give system access to wpa_supplicant.conf for backup and restore + mkdir /data/misc/wifi 0770 wifi wifi + chmod 0660 /data/misc/wifi/wpa_supplicant.conf + mkdir /data/local 0771 shell shell + mkdir /data/local/tmp 0771 shell shell + mkdir /data/data 0771 system system + mkdir /data/app-private 0771 system system + mkdir /data/app 0771 system system + mkdir /data/property 0700 root root + + # create dalvik-cache, so as to enforce our permissions + mkdir /data/dalvik-cache 0771 system system + + # create resource-cache and double-check the perms + mkdir /data/resource-cache 0771 system system + chown system system /data/resource-cache + chmod 0771 /data/resource-cache + + # create the lost+found directories, so as to enforce our permissions + mkdir /data/lost+found 0770 root root + + # create directory for DRM plug-ins + mkdir /data/drm 0774 drm drm + + # If there is no fs-post-data action in the init..rc file, you + # must uncomment this line, otherwise encrypted filesystems + # won't work. + # Set indication (checked by vold) that we have finished this action + #setprop vold.post_fs_data_done 1 + + chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file + chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file + chown system system /sys/class/android_usb/android0/f_rndis/ethaddr + chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr + +on boot +# basic network init + ifup lo + hostname localhost + domainname localdomain + +# set RLIMIT_NICE to allow priorities from 19 to -20 + setrlimit 13 40 40 + +# Memory management. Basic kernel parameters, and allow the high +# level system server to be able to adjust the kernel OOM driver +# paramters to match how it is managing things. + write /proc/sys/vm/overcommit_memory 1 + write /proc/sys/vm/min_free_order_shift 4 + chown root system /sys/module/lowmemorykiller/parameters/adj + chmod 0664 /sys/module/lowmemorykiller/parameters/adj + chown root system /sys/module/lowmemorykiller/parameters/minfree + chmod 0664 /sys/module/lowmemorykiller/parameters/minfree + + # Tweak background writeout + write /proc/sys/vm/dirty_expire_centisecs 200 + write /proc/sys/vm/dirty_background_ratio 5 + + # Permissions for System Server and daemons. + chown radio system /sys/android_power/state + chown radio system /sys/android_power/request_state + chown radio system /sys/android_power/acquire_full_wake_lock + chown radio system /sys/android_power/acquire_partial_wake_lock + chown radio system /sys/android_power/release_wake_lock + chown radio system /sys/power/state + chown radio system /sys/power/wake_lock + chown radio system /sys/power/wake_unlock + chmod 0660 /sys/power/state + chmod 0660 /sys/power/wake_lock + chmod 0660 /sys/power/wake_unlock + chown system system /sys/class/timed_output/vibrator/enable + chown system system /sys/class/leds/keyboard-backlight/brightness + chown system system /sys/class/leds/lcd-backlight/brightness + chown system system /sys/class/leds/button-backlight/brightness + chown system system /sys/class/leds/jogball-backlight/brightness + chown system system /sys/class/leds/red/brightness + chown system system /sys/class/leds/green/brightness + chown system system /sys/class/leds/blue/brightness + chown system system /sys/class/leds/red/device/grpfreq + chown system system /sys/class/leds/red/device/grppwm + chown system system /sys/class/leds/red/device/blink + chown system system /sys/class/leds/red/brightness + chown system system /sys/class/leds/green/brightness + chown system system /sys/class/leds/blue/brightness + chown system system /sys/class/leds/red/device/grpfreq + chown system system /sys/class/leds/red/device/grppwm + chown system system /sys/class/leds/red/device/blink + chown system system /sys/class/timed_output/vibrator/enable + chown system system /sys/module/sco/parameters/disable_esco + chown system system /sys/kernel/ipv4/tcp_wmem_min + chown system system /sys/kernel/ipv4/tcp_wmem_def + chown system system /sys/kernel/ipv4/tcp_wmem_max + chown system system /sys/kernel/ipv4/tcp_rmem_min + chown system system /sys/kernel/ipv4/tcp_rmem_def + chown system system /sys/kernel/ipv4/tcp_rmem_max + chown root radio /proc/cmdline + +# Define TCP buffer sizes for various networks +# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax, + setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208 + setprop net.tcp.buffersize.wifi 524288,1048576,2097152,262144,524288,1048576 + setprop net.tcp.buffersize.lte 524288,1048576,2097152,262144,524288,1048576 + setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208 + setprop net.tcp.buffersize.hspa 4094,87380,262144,4096,16384,262144 + setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040 + setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680 + +# Set this property so surfaceflinger is not started by system_init + setprop system_init.startsurfaceflinger 0 + + class_start core + class_start main + +on nonencrypted + class_start late_start + +on charger + class_start charger + +on property:vold.decrypt=trigger_reset_main + class_reset main + +on property:vold.decrypt=trigger_load_persist_props + load_persist_props + +on property:vold.decrypt=trigger_post_fs_data + trigger post-fs-data + +on property:vold.decrypt=trigger_restart_min_framework + class_start main + +on property:vold.decrypt=trigger_restart_framework + class_start main + class_start late_start + +on property:vold.decrypt=trigger_shutdown_framework + class_reset late_start + class_reset main + +# Used to disable USB when switching states +on property:sys.usb.config=none + stop adbd + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/bDeviceClass 0 + setprop sys.usb.state $sys.usb.config + +# adb only USB configuration +# This should only be used during device bringup +# and as a fallback if the USB manager fails to set a standard configuration +on property:sys.usb.config=adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 18d1 + write /sys/class/android_usb/android0/idProduct D002 + 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 + +# USB accessory configuration +on property:sys.usb.config=accessory + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 18d1 + write /sys/class/android_usb/android0/idProduct 2d00 + 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 + +# USB accessory configuration, with adb +on property:sys.usb.config=accessory,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 18d1 + write /sys/class/android_usb/android0/idProduct 2d01 + 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 + +# Used to set USB configuration at boot and to switch the configuration +# when changing the default configuration +on property:persist.sys.usb.config=* + setprop sys.usb.config $persist.sys.usb.config + +## 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 + +# adbd is controlled via property triggers in init..usb.rc +service adbd /sbin/adbd + class core + disabled + +# adbd on at boot in emulator +on property:ro.kernel.qemu=1 + start adbd + +# This property trigger has added to imitiate the previous behavior of "adb root". +# The adb gadget driver used to reset the USB bus when the adbd daemon exited, +# and the host side adb relied on this behavior to force it to reconnect with the +# new adbd instance after init relaunches it. So now we force the USB bus to reset +# here when adbd sets the service.adb.root property to 1. We also restart adbd here +# rather than waiting for init to notice its death and restarting it so the timing +# of USB resetting and adb restarting more closely matches the previous behavior. +on property:service.adb.root=1 + write /sys/class/android_usb/android0/enable 0 + restart adbd + write /sys/class/android_usb/android0/enable 1 + +service servicemanager /system/bin/servicemanager + class core + user system + group system + critical + onrestart restart zygote + onrestart restart media + +service vold /system/bin/vold + class core + socket vold stream 0660 root mount + ioprio be 2 + +service netd /system/bin/netd + class main + socket netd stream 0660 root system + socket dnsproxyd stream 0660 root inet + +service debuggerd /system/bin/debuggerd + class main + +service ril-daemon /system/bin/rild + class main + socket rild stream 660 root radio + socket rild-debug stream 660 radio system + user root + group radio cache inet misc audio sdcard_rw log + +service surfaceflinger /system/bin/surfaceflinger + class main + user system + group graphics + onrestart restart zygote + +service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server + class main + socket zygote stream 666 + onrestart write /sys/android_power/request_state wake + onrestart write /sys/power/state on + onrestart restart media + onrestart restart netd + +service drm /system/bin/drmserver + class main + user drm + group system inet drmrpc + +service media /system/bin/mediaserver + class main + user media + group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc + ioprio rt 4 + +service bootanim /system/bin/bootanimation + class main + user graphics + group graphics + disabled + oneshot + +service dbus /system/bin/dbus-daemon --system --nofork + class main + socket dbus stream 660 bluetooth bluetooth + user bluetooth + group bluetooth net_bt_admin + +service bluetoothd /system/bin/bluetoothd -n + class main + socket bluetooth stream 660 bluetooth bluetooth + socket dbus_bluetooth stream 660 bluetooth bluetooth + # init.rc does not yet support applying capabilities, so run as root and + # let bluetoothd drop uid to bluetooth with the right linux capabilities + group bluetooth net_bt_admin misc + disabled + +#service installd /system/bin/installd +# class main +# socket installd stream 600 system system + +service flash_recovery /system/etc/install-recovery.sh + class main + oneshot + +service racoon /system/bin/racoon + class main + socket racoon stream 600 system system + # IKE uses UDP port 500. Racoon will setuid to vpn after binding the port. + group vpn net_admin inet + disabled + oneshot + +service mtpd /system/bin/mtpd + class main + socket mtpd stream 600 system system + user vpn + group vpn net_admin inet net_raw + disabled + oneshot + +service keystore /system/bin/keystore /data/misc/keystore + class main + user keystore + group keystore + socket keystore stream 666 + +service dumpstate /system/bin/dumpstate -s + class main + socket dumpstate stream 0660 shell log + disabled + oneshot diff --git a/setup-makefiles.sh b/setup-makefiles.sh index c971cca..f59e671 100755 --- a/setup-makefiles.sh +++ b/setup-makefiles.sh @@ -110,29 +110,3 @@ EOF USE_CAMERA_STUB := false EOF - -mkdir -p ../../../$OUTDIR/overlay/packages/apps/Launcher2/res/layout -(cat << EOF) > ../../../$OUTDIR/overlay/packages/apps/Launcher2/res/layout/all_apps.xml - - - - - - - - - -EOF diff --git a/vendorsetup.sh b/vendorsetup.sh index 6b7348b..61fd8f4 100644 --- a/vendorsetup.sh +++ b/vendorsetup.sh @@ -22,3 +22,4 @@ add_lunch_combo htc_leo-userdebug add_lunch_combo htc_leo-eng +add_lunch_combo full_leo-eng