今回の更新
From git://git.android-x86.org/platform/build 69aca99..7c3e6cb honeycomb-x86 -> x86/honeycomb-x86 From git://git.android-x86.org/device/tegatech/tegav2 9fc1167..74e2823 honeycomb-x86 -> x86/honeycomb-x86 From git://git.android-x86.org/platform/frameworks/base f4471d5..232fef0 honeycomb-x86 -> x86/honeycomb-x86 a90feaf..815e0c1 ics-x86 -> x86/ics-x86
kinneko@BuildSV:~/ICSx86/build$ git log 69aca99..7c3e6cb commit 7c3e6cb66759308d7f8642c393e1a6a90643f835 Author: Chih-Wei Huang <cwhuang@linux.org.tw> Date: Thu Dec 15 17:14:26 2011 +0800 generic_x86: add GenericTouch.idc as the default one for touchscreen kinneko@BuildSV:~/ICSx86/build$ git diff 69aca99..7c3e6cb diff --git a/target/board/generic_x86/device.mk b/target/board/generic_x86/device.mk index b47f51d..4f23fee 100644 --- a/target/board/generic_x86/device.mk +++ b/target/board/generic_x86/device.mk @@ -32,6 +32,7 @@ PRODUCT_COPY_FILES := \ $(strip $(foreach f,$(wildcard device/common/app/*.apk $(PRODUCT_DIR)app/*. PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/GenericTouch.idc:system/usr/idc/GenericTouch.idc \ frameworks/base/data/etc/tablet_core_hardware.xml:system/etc/permissions/ta frameworks/base/data/etc/android.hardware.touchscreen.multitouch.jazzhand.x frameworks/base/data/etc/android.hardware.camera.front.xml:system/etc/permi
こっちは、普通にtegav2に対応したパッチを出したのだけど、そういう固有のやり方じゃなくて、大差ないのでGenericTouch.idcで対応したいということらしい。なのでbaseのEventHubにもパッチ。
kinneko@BuildSV:~/ICSx86/frameworks/base$ git log f4471d5..232fef0 commit 232fef0291c6c85c4b7a8d5493081cf8da4d03da Author: Chih-Wei Huang <cwhuang@linux.org.tw> Date: Fri Dec 9 16:28:57 2011 +0800 EventHub: load a default .idc if no other .idc found for touchscreen The patch moves loadConfigurationLocked to later stage that may cause issues if upstream changes. Needs to review it on rebasing. kinneko@BuildSV:~/ICSx86/frameworks/base$ git diff f4471d5..232fef0 diff --git a/services/input/EventHub.cpp b/services/input/EventHub.cpp index 19f903b..74a526c 100644 --- a/services/input/EventHub.cpp +++ b/services/input/EventHub.cpp @@ -852,9 +852,6 @@ int EventHub::openDevice(const char *devicePath) { driverVersion >> 16, (driverVersion >> 8) & 0xff, driverVersion & 0xff); #endif - // Load the configuration file for the device. - loadConfiguration(device); - // Figure out the kinds of events the device reports. uint8_t key_bitmask[sizeof_bit_array(KEY_MAX + 1)]; memset(key_bitmask, 0, sizeof(key_bitmask)); @@ -952,6 +949,9 @@ int EventHub::openDevice(const char *devicePath) { device->classes |= INPUT_DEVICE_CLASS_SWITCH; } + // Load the configuration file for the device. + loadConfiguration(device); + if ((device->classes & INPUT_DEVICE_CLASS_TOUCH)) { // Load the virtual keys for the touch screen, if any. // We do this now so that we can make sure to load the keymap if necessary. @@ -1043,6 +1043,10 @@ int EventHub::openDevice(const char *devicePath) { void EventHub::loadConfiguration(Device* device) { device->configurationFile = getInputDeviceConfigurationFilePathByDeviceIdentifier( device->identifier, INPUT_DEVICE_CONFIGURATION_FILE_TYPE_CONFIGURATION); + if ((device->classes & INPUT_DEVICE_CLASS_TOUCH) && device->configurationFile.isEmpty()) { + device->configurationFile = getInputDeviceConfigurationFilePathByName(String8("GenericTouch"), + INPUT_DEVICE_CONFIGURATION_FILE_TYPE_CONFIGURATION); + } if (device->configurationFile.isEmpty()) { LOGD("No input device configuration file found for device '%s'.", device->identifier.name.string());
ICSでは、すこし違うということで、こちらも。
loadConfigurationLocked()が違うのね。
idcの設定としては、device.internal=1が必須のよう。
kinneko@BuildSV:~/ICSx86/frameworks/base$ git log a90feaf..815e0c1 commit 815e0c18a6106fa59955c5114d5ac8c8f86e6ad2 Author: Chih-Wei Huang <cwhuang@linux.org.tw> Date: Fri Dec 9 16:28:57 2011 +0800 EventHub: load a default .idc if no other .idc found for touchscreen The patch moves loadConfigurationLocked to later stage that may cause issues if upstream changes. Needs to review it on rebasing. commit ac767ef45a16ff1459285346fe43b583d8d481d9 Author: Chih-Wei Huang <cwhuang@linux.org.tw> Date: Thu Dec 8 20:16:29 2011 +0800 disables hardware acceleration if debug.egl.hw=0 kinneko@BuildSV:~/ICSx86/frameworks/base$ git diff a90feaf..815e0c1 diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index 4fe9cef..d9da88b 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -213,9 +213,14 @@ public class ActivityManager { * Used by persistent processes to determine if they are running on a * higher-end device so should be okay using hardware drawing acceleration * (which tends to consume a lot more RAM). + * Alternatively, setting debug.egl.hw=0 disables hardware acceleration. * @hide */ static public boolean isHighEndGfx(Display display) { + if (SystemProperties.get("debug.egl.hw").equals("0")) { + return false; + } + MemInfoReader reader = new MemInfoReader(); reader.readMemInfo(); if (reader.getTotalSize() >= (512*1024*1024)) { diff --git a/services/input/EventHub.cpp b/services/input/EventHub.cpp index 790b395..b708cf3 100644 --- a/services/input/EventHub.cpp +++ b/services/input/EventHub.cpp @@ -923,9 +923,6 @@ status_t EventHub::openDeviceLocked(const char *devicePath) { driverVersion >> 16, (driverVersion >> 8) & 0xff, driverVersion & 0xff); #endif - // Load the configuration file for the device. - loadConfigurationLocked(device); - // Figure out the kinds of events the device reports. ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(device->keyBitmask)), device->keyBitmask); ioctl(fd, EVIOCGBIT(EV_ABS, sizeof(device->absBitmask)), device->absBitmask); @@ -993,6 +990,9 @@ status_t EventHub::openDeviceLocked(const char *devicePath) { } } + // Load the configuration file for the device. + loadConfigurationLocked(device); + // Configure virtual keys. if ((device->classes & INPUT_DEVICE_CLASS_TOUCH)) { // Load the virtual keys for the touch screen, if any. @@ -1091,6 +1091,10 @@ status_t EventHub::openDeviceLocked(const char *devicePath) { void EventHub::loadConfigurationLocked(Device* device) { device->configurationFile = getInputDeviceConfigurationFilePathByDeviceIdentifier( device->identifier, INPUT_DEVICE_CONFIGURATION_FILE_TYPE_CONFIGURATION); + if ((device->classes & INPUT_DEVICE_CLASS_TOUCH) && device->configurationFile.isEmpty()) { + device->configurationFile = getInputDeviceConfigurationFilePathByName(String8("GenericTouch"), + INPUT_DEVICE_CONFIGURATION_FILE_TYPE_CONFIGURATION); + } if (device->configurationFile.isEmpty()) { LOGD("No input device configuration file found for device '%s'.", device->identifier.name.string());
どっちも、GenericTouch.idcそのものは追加されてないな...
これで動くわけないか。
変えるくらいなら、設定なかった時には、デフォルト値埋めたらいいのじゃまいか。
kinneko@BuildSV:~/ICSx86/device/tegatech/tegav2$ git log 9fc1167..74e2823 commit 74e28236331474f517573490bb21203680f7647f Author: Kinneko <kinneko@gmail.com> Date: Thu Dec 15 15:31:26 2011 +0800 tegav2_info: disable warning for CZC P10T Tablet PC kinneko@BuildSV:~/ICSx86/device/tegatech/tegav2$ git diff 9fc1167..74e2823 diff --git a/tegav2_info b/tegav2_info index cc0070f..e67349e 100644 --- a/tegav2_info +++ b/tegav2_info @@ -4,7 +4,7 @@ tegav2_info() { board=`cat $DMIPATH/product_name` case "$board" in - TEGA*|VPAD10*|X1*|PC*) + TEGA*|VPAD10*|X1*|PC*|Intel*) ;; *) error WARNING: An unknown model @@ -22,7 +22,7 @@ tegav2_info() detect_hardware() { case "`cat $DMIPATH/uevent`" in - *TEGA*|*VPAD10*|*azpen*|*AZPENPC*) + *TEGA*|*VPAD10*|*azpen*|*AZPENPC*|Intel*) ;; *) error WARNING: An unknown tablet
これは普通に採用。
メッセージでなくするだけなので、あんまり意味はないけど。
あ、ICSには入ってないのか。
まぁ、それはそのうちに...