MSM8974: Initial Common repo commit.

This commit is contained in:
slayher 2014-05-18 23:33:07 -04:00
commit 8eb37d439c
49 changed files with 4293 additions and 0 deletions

29
Android.mk Normal file
View File

@ -0,0 +1,29 @@
#
# Copyright (C) 2012 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.
#
# WARNING: Everything listed here will be built on ALL platforms,
# including x86, the emulator, and the SDK. Modules must be uniquely
# named (liblights.tuna), and must build everywhere, or limit themselves
# to only building on ARM if they include assembly. Individual makefiles
# are responsible for having their own logic, for fine-grained control.
LOCAL_PATH := $(call my-dir)
ifeq ($(BOARD_VENDOR),samsung)
ifneq ($(filter msm8974 msm8960,$(TARGET_BOARD_PLATFORM)),)
include $(call all-subdir-makefiles,$(LOCAL_PATH))
endif
endif

112
BoardConfigCommon.mk Normal file
View File

@ -0,0 +1,112 @@
# 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.
BOARD_VENDOR := samsung
# Platform
TARGET_BOARD_PLATFORM := msm8974
TARGET_BOARD_PLATFORM_GPU := qcom-adreno330
# inherit from qcom-common
-include device/samsung/qcom-common/BoardConfigCommon.mk
# Architecture
TARGET_CPU_SMP := true
TARGET_GLOBAL_CFLAGS += -mfpu=neon-vfpv4 -mfloat-abi=softfp
TARGET_GLOBAL_CPPFLAGS += -mfpu=neon-vfpv4 -mfloat-abi=softfp
TARGET_CPU_VARIANT := krait
# Wifi related defines
WIFI_BAND := 802_11_ABG
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_bcmdhd
BOARD_WLAN_DEVICE := bcmdhd
BOARD_HAVE_SAMSUNG_WIFI := true
WIFI_DRIVER_MODULE_ARG := "firmware_path=/system/etc/wifi/bcmdhd_sta.bin nvram_path=/system/etc/wifi/nvram_net.txt"
WIFI_DRIVER_MODULE_AP_ARG := "firmware_path=/system/etc/wifi/bcmdhd_apsta.bin nvram_path=/system/etc/wifi/nvram_net.txt"
WIFI_DRIVER_FW_PATH_PARAM := "/sys/module/dhd/parameters/firmware_path"
WIFI_DRIVER_FW_PATH_STA := "/system/etc/wifi/bcmdhd_sta.bin"
WIFI_DRIVER_FW_PATH_AP := "/system/etc/wifi/bcmdhd_apsta.bin"
# Bluetooth
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_BCM := true
# NFC
BOARD_HAVE_NFC := true
# Vold
BOARD_VOLD_EMMC_SHARES_DEV_MAJOR := true
BOARD_VOLD_MAX_PARTITIONS := 28
TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/devices/platform/msm_hsusb/gadget/lun%d/file
# Camera
TARGET_PROVIDES_CAMERA_HAL := true
USE_DEVICE_SPECIFIC_CAMERA := true
COMMON_GLOBAL_CFLAGS += -DSAMSUNG_CAMERA_HARDWARE
# Workaround to avoid issues with legacy liblights on QCOM platforms
TARGET_PROVIDES_LIBLIGHT := true
# Audio
BOARD_HAVE_SAMSUNG_AUDIO := true
BOARD_USES_ALSA_AUDIO := true
BOARD_USES_FLUENCE_INCALL := true
BOARD_USES_FLUENCE_FOR_VOIP := true
BOARD_USES_SEPERATED_AUDIO_INPUT := true
TARGET_USES_QCOM_COMPRESSED_AUDIO := true
# QCOM support
BOARD_USES_QCOM_HARDWARE := true
TARGET_QCOM_MEDIA_VARIANT := caf-new
TARGET_QCOM_DISPLAY_VARIANT := caf-new
BOARD_USES_LEGACY_ALSA_AUDIO :=
TARGET_QCOM_AUDIO_VARIANT := caf
TARGET_USES_QCOM_BSP := true
TARGET_ENABLE_QC_AV_ENHANCEMENTS := true
# Use retire fence from MDP driver
TARGET_DISPLAY_USE_RETIRE_FENCE := true
# SELinux
BOARD_SEPOLICY_DIRS += \
device/samsung/msm8974-common/sepolicy
BOARD_SEPOLICY_UNION += \
file_contexts \
app.te \
bluetooth.te \
device.te \
domain.te \
drmserver.te \
file.te \
hci_init.te \
healthd.te \
init.te \
init_shell.te \
keystore.te \
kickstart.te \
mediaserver.te \
nfc.te \
rild.te \
surfaceflinger.te \
system.te \
ueventd.te \
wpa.te \
wpa_socket.te

3
README Normal file
View File

@ -0,0 +1,3 @@
Copyright 2012 - The CyanogenMod Project
Common Samsung 8974 repository

18
camera/Android.mk Normal file
View File

@ -0,0 +1,18 @@
ifeq ($(TARGET_PROVIDES_CAMERA_HAL_MSM8974),true)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
CameraWrapper.cpp
LOCAL_SHARED_LIBRARIES := \
libhardware liblog libcamera_client libutils
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
LOCAL_MODULE := camera.msm8974
LOCAL_MODULE_TAGS := optional
include $(BUILD_SHARED_LIBRARY)
endif

590
camera/CameraWrapper.cpp Normal file
View File

@ -0,0 +1,590 @@
/*
* 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.
*/
/**
* @file CameraWrapper.cpp
*
* This file wraps a vendor camera module.
*
*/
// #define LOG_NDEBUG 0
#define LOG_PARAMETERS
#define LOG_TAG "CameraWrapper"
#include <cutils/log.h>
#include <utils/threads.h>
#include <utils/String8.h>
#include <hardware/hardware.h>
#include <hardware/camera.h>
#include <camera/Camera.h>
#include <camera/CameraParameters.h>
static android::Mutex gCameraWrapperLock;
static camera_module_t *gVendorModule = 0;
static char **fixed_set_params = NULL;
static int camera_device_open(const hw_module_t* module, const char* name,
hw_device_t** device);
static int camera_device_close(hw_device_t* device);
static int camera_get_number_of_cameras(void);
static int camera_get_camera_info(int camera_id, struct camera_info *info);
static int camera_send_command(struct camera_device * device, int32_t cmd,
int32_t arg1, int32_t arg2);
static struct hw_module_methods_t camera_module_methods = {
open: camera_device_open
};
camera_module_t HAL_MODULE_INFO_SYM = {
common: {
tag: HARDWARE_MODULE_TAG,
version_major: 1,
version_minor: 0,
id: CAMERA_HARDWARE_MODULE_ID,
name: "Hlte Camera Wrapper",
author: "The CyanogenMod Project",
methods: &camera_module_methods,
dso: NULL, /* remove compilation warnings */
reserved: {0}, /* remove compilation warnings */
},
get_number_of_cameras: camera_get_number_of_cameras,
get_camera_info: camera_get_camera_info,
};
typedef struct wrapper_camera_device {
camera_device_t base;
int id;
camera_device_t *vendor;
} wrapper_camera_device_t;
#define VENDOR_CALL(device, func, ...) ({ \
wrapper_camera_device_t *__wrapper_dev = (wrapper_camera_device_t*) device; \
__wrapper_dev->vendor->ops->func(__wrapper_dev->vendor, ##__VA_ARGS__); \
})
#define CAMERA_ID(device) (((wrapper_camera_device_t *)(device))->id)
static int check_vendor_module()
{
int rv = 0;
ALOGI("%s", __FUNCTION__);
if(gVendorModule)
return 0;
rv = hw_get_module_by_class("camera", "vendor",
(const hw_module_t **)&gVendorModule);
if (rv)
ALOGE("failed to open vendor camera module");
return rv;
}
static char * camera_fixup_getparams(int id, const char * settings)
{
android::CameraParameters params;
params.unflatten(android::String8(settings));
android::String8 strParams = params.flatten();
char *ret = strdup(strParams.string());
ALOGD("%s: get parameters fixed up", __FUNCTION__);
return ret;
}
char * camera_fixup_setparams(struct camera_device * device, const char * settings)
{
int id = CAMERA_ID(device);
android::CameraParameters params;
params.unflatten(android::String8(settings));
const char* recordingHint = params.get(android::CameraParameters::KEY_RECORDING_HINT);
bool isVideo = recordingHint && !strcmp(recordingHint, "true");
if (isVideo) {
params.set("dis", "disable");
params.set(android::CameraParameters::KEY_ZSL, "off");
} else {
params.set(android::CameraParameters::KEY_ZSL, "on");
}
android::String8 strParams = params.flatten();
if (fixed_set_params[id])
free(fixed_set_params[id]);
fixed_set_params[id] = strdup(strParams.string());
char *ret = fixed_set_params[id];
ALOGD("%s: set parameters fixed up", __FUNCTION__);
return ret;
}
/*******************************************************************
* implementation of camera_device_ops functions
*******************************************************************/
int camera_set_preview_window(struct camera_device * device,
struct preview_stream_ops *window)
{
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return -EINVAL;
return VENDOR_CALL(device, set_preview_window, window);
}
void camera_set_callbacks(struct camera_device * device,
camera_notify_callback notify_cb,
camera_data_callback data_cb,
camera_data_timestamp_callback data_cb_timestamp,
camera_request_memory get_memory,
void *user)
{
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
ALOGI("%s", __FUNCTION__);
if(!device)
return;
VENDOR_CALL(device, set_callbacks, notify_cb, data_cb, data_cb_timestamp, get_memory, user);
}
void camera_enable_msg_type(struct camera_device * device, int32_t msg_type)
{
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
ALOGI("%s", __FUNCTION__);
if(!device)
return;
VENDOR_CALL(device, enable_msg_type, msg_type);
}
void camera_disable_msg_type(struct camera_device * device, int32_t msg_type)
{
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
ALOGI("%s", __FUNCTION__);
if(!device)
return;
VENDOR_CALL(device, disable_msg_type, msg_type);
}
int camera_msg_type_enabled(struct camera_device * device, int32_t msg_type)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return 0;
return VENDOR_CALL(device, msg_type_enabled, msg_type);
}
int camera_start_preview(struct camera_device * device)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return -EINVAL;
return VENDOR_CALL(device, start_preview);
}
void camera_stop_preview(struct camera_device * device)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return;
VENDOR_CALL(device, stop_preview);
}
int camera_preview_enabled(struct camera_device * device)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return -EINVAL;
return VENDOR_CALL(device, preview_enabled);
}
int camera_store_meta_data_in_buffers(struct camera_device * device, int enable)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return -EINVAL;
return VENDOR_CALL(device, store_meta_data_in_buffers, enable);
}
int camera_start_recording(struct camera_device * device)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return EINVAL;
return VENDOR_CALL(device, start_recording);
}
void camera_stop_recording(struct camera_device * device)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return;
VENDOR_CALL(device, stop_recording);
}
int camera_recording_enabled(struct camera_device * device)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return -EINVAL;
return VENDOR_CALL(device, recording_enabled);
}
void camera_release_recording_frame(struct camera_device * device,
const void *opaque)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return;
VENDOR_CALL(device, release_recording_frame, opaque);
}
int camera_auto_focus(struct camera_device * device)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return -EINVAL;
return VENDOR_CALL(device, auto_focus);
}
int camera_cancel_auto_focus(struct camera_device * device)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return -EINVAL;
return VENDOR_CALL(device, cancel_auto_focus);
}
int camera_take_picture(struct camera_device * device)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return -EINVAL;
return VENDOR_CALL(device, take_picture);
}
int camera_cancel_picture(struct camera_device * device)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return -EINVAL;
return VENDOR_CALL(device, cancel_picture);
}
int camera_set_parameters(struct camera_device * device, const char *params)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return -EINVAL;
char *tmp = NULL;
tmp = camera_fixup_setparams(device, params);
#ifdef LOG_PARAMETERS
__android_log_write(ANDROID_LOG_VERBOSE, LOG_TAG, tmp);
#endif
int ret = VENDOR_CALL(device, set_parameters, tmp);
return ret;
}
char* camera_get_parameters(struct camera_device * device)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return NULL;
char* params = VENDOR_CALL(device, get_parameters);
#ifdef LOG_PARAMETERS
__android_log_write(ANDROID_LOG_VERBOSE, LOG_TAG, params);
#endif
char * tmp = camera_fixup_getparams(CAMERA_ID(device), params);
VENDOR_CALL(device, put_parameters, params);
params = tmp;
#ifdef LOG_PARAMETERS
__android_log_write(ANDROID_LOG_VERBOSE, LOG_TAG, params);
#endif
return params;
}
static void camera_put_parameters(struct camera_device *device, char *params)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(params)
free(params);
}
int camera_send_command(struct camera_device * device,
int32_t cmd, int32_t arg1, int32_t arg2)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return -EINVAL;
return VENDOR_CALL(device, send_command, cmd, arg1, arg2);
}
void camera_release(struct camera_device * device)
{
ALOGI("%s", __FUNCTION__);
ALOGI("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor));
if(!device)
return;
VENDOR_CALL(device, release);
}
int camera_dump(struct camera_device * device, int fd)
{
if(!device)
return -EINVAL;
return VENDOR_CALL(device, dump, fd);
}
extern "C" void heaptracker_free_leaked_memory(void);
int camera_device_close(hw_device_t* device)
{
int ret = 0;
wrapper_camera_device_t *wrapper_dev = NULL;
ALOGI("%s", __FUNCTION__);
android::Mutex::Autolock lock(gCameraWrapperLock);
if (!device) {
ret = -EINVAL;
goto done;
}
for (int i = 0; i < camera_get_number_of_cameras(); i++) {
if (fixed_set_params[i])
free(fixed_set_params[i]);
}
wrapper_dev = (wrapper_camera_device_t*) device;
wrapper_dev->vendor->common.close((hw_device_t*)wrapper_dev->vendor);
if (wrapper_dev->base.ops)
free(wrapper_dev->base.ops);
free(wrapper_dev);
done:
#ifdef HEAPTRACKER
heaptracker_free_leaked_memory();
#endif
return ret;
}
/*******************************************************************
* implementation of camera_module functions
*******************************************************************/
/* open device handle to one of the cameras
*
* assume camera service will keep singleton of each camera
* so this function will always only be called once per camera instance
*/
int camera_device_open(const hw_module_t* module, const char* name,
hw_device_t** device)
{
int rv = 0;
int num_cameras = 0;
int cameraid;
wrapper_camera_device_t* camera_device = NULL;
camera_device_ops_t* camera_ops = NULL;
android::Mutex::Autolock lock(gCameraWrapperLock);
ALOGI("camera_device open");
if (name != NULL) {
if (check_vendor_module())
return -EINVAL;
cameraid = atoi(name);
num_cameras = gVendorModule->get_number_of_cameras();
fixed_set_params = (char **) malloc(sizeof(char *) * num_cameras);
if (!fixed_set_params) {
ALOGE("parameter memory allocation fail");
rv = -ENOMEM;
goto fail;
}
memset(fixed_set_params, 0, sizeof(char *) * num_cameras);
if(cameraid > num_cameras)
{
ALOGE("camera service provided cameraid out of bounds, "
"cameraid = %d, num supported = %d",
cameraid, num_cameras);
rv = -EINVAL;
goto fail;
}
camera_device = (wrapper_camera_device_t*)malloc(sizeof(*camera_device));
if(!camera_device)
{
ALOGE("camera_device allocation fail");
rv = -ENOMEM;
goto fail;
}
memset(camera_device, 0, sizeof(*camera_device));
camera_device->id = cameraid;
if(rv = gVendorModule->common.methods->open((const hw_module_t*)gVendorModule, name, (hw_device_t**)&(camera_device->vendor)))
{
ALOGE("vendor camera open fail");
goto fail;
}
ALOGI("%s: got vendor camera device 0x%08X", __FUNCTION__, (uintptr_t)(camera_device->vendor));
camera_ops = (camera_device_ops_t*)malloc(sizeof(*camera_ops));
if(!camera_ops)
{
ALOGE("camera_ops allocation fail");
rv = -ENOMEM;
goto fail;
}
memset(camera_ops, 0, sizeof(*camera_ops));
camera_device->base.common.tag = HARDWARE_DEVICE_TAG;
camera_device->base.common.version = 0;
camera_device->base.common.module = (hw_module_t *)(module);
camera_device->base.common.close = camera_device_close;
camera_device->base.ops = camera_ops;
camera_ops->set_preview_window = camera_set_preview_window;
camera_ops->set_callbacks = camera_set_callbacks;
camera_ops->enable_msg_type = camera_enable_msg_type;
camera_ops->disable_msg_type = camera_disable_msg_type;
camera_ops->msg_type_enabled = camera_msg_type_enabled;
camera_ops->start_preview = camera_start_preview;
camera_ops->stop_preview = camera_stop_preview;
camera_ops->preview_enabled = camera_preview_enabled;
camera_ops->store_meta_data_in_buffers = camera_store_meta_data_in_buffers;
camera_ops->start_recording = camera_start_recording;
camera_ops->stop_recording = camera_stop_recording;
camera_ops->recording_enabled = camera_recording_enabled;
camera_ops->release_recording_frame = camera_release_recording_frame;
camera_ops->auto_focus = camera_auto_focus;
camera_ops->cancel_auto_focus = camera_cancel_auto_focus;
camera_ops->take_picture = camera_take_picture;
camera_ops->cancel_picture = camera_cancel_picture;
camera_ops->set_parameters = camera_set_parameters;
camera_ops->get_parameters = camera_get_parameters;
camera_ops->put_parameters = camera_put_parameters;
camera_ops->send_command = camera_send_command;
camera_ops->release = camera_release;
camera_ops->dump = camera_dump;
*device = &camera_device->base.common;
}
return rv;
fail:
if(camera_device) {
free(camera_device);
camera_device = NULL;
}
if(camera_ops) {
free(camera_ops);
camera_ops = NULL;
}
*device = NULL;
return rv;
}
int camera_get_number_of_cameras(void)
{
ALOGI("%s", __FUNCTION__);
if (check_vendor_module())
return 0;
return gVendorModule->get_number_of_cameras();
}
int camera_get_camera_info(int camera_id, struct camera_info *info)
{
ALOGI("%s", __FUNCTION__);
if (check_vendor_module())
return 0;
return gVendorModule->get_camera_info(camera_id, info);
}

672
keychars/Generic.kcm Normal file
View File

@ -0,0 +1,672 @@
# 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 character map 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 character map to support a specific keyboard; instead, create
# a new key character map file with the required keyboard configuration.
#
type FULL
### Basic QWERTY keys ###
key A {
label: 'A'
base: 'a'
shift, capslock: 'A'
ctrl, alt, meta: none
}
key B {
label: 'B'
base: 'b'
shift, capslock: 'B'
ctrl, alt, meta: none
}
key C {
label: 'C'
base: 'c'
shift, capslock: 'C'
alt: '\u00e7'
shift+alt: '\u00c7'
ctrl, meta: none
}
key D {
label: 'D'
base: 'd'
shift, capslock: 'D'
ctrl, alt, meta: none
}
key E {
label: 'E'
base: 'e'
shift, capslock: 'E'
alt: '\u0301'
ctrl, meta: none
}
key F {
label: 'F'
base: 'f'
shift, capslock: 'F'
ctrl, alt, meta: none
}
key G {
label: 'G'
base: 'g'
shift, capslock: 'G'
ctrl, alt, meta: none
}
key H {
label: 'H'
base: 'h'
shift, capslock: 'H'
ctrl, alt, meta: none
}
key I {
label: 'I'
base: 'i'
shift, capslock: 'I'
alt: '\u0302'
ctrl, meta: none
}
key J {
label: 'J'
base: 'j'
shift, capslock: 'J'
ctrl, alt, meta: none
}
key K {
label: 'K'
base: 'k'
shift, capslock: 'K'
ctrl, alt, meta: none
}
key L {
label: 'L'
base: 'l'
shift, capslock: 'L'
ctrl, alt, meta: none
}
key M {
label: 'M'
base: 'm'
shift, capslock: 'M'
ctrl, alt, meta: none
}
key N {
label: 'N'
base: 'n'
shift, capslock: 'N'
alt: '\u0303'
ctrl, meta: none
}
key O {
label: 'O'
base: 'o'
shift, capslock: 'O'
ctrl, alt, meta: none
}
key P {
label: 'P'
base: 'p'
shift, capslock: 'P'
ctrl, alt, meta: none
}
key Q {
label: 'Q'
base: 'q'
shift, capslock: 'Q'
ctrl, alt, meta: none
}
key R {
label: 'R'
base: 'r'
shift, capslock: 'R'
ctrl, alt, meta: none
}
key S {
label: 'S'
base: 's'
shift, capslock: 'S'
alt: '\u00df'
ctrl, meta: none
}
key T {
label: 'T'
base: 't'
shift, capslock: 'T'
ctrl, alt, meta: none
}
key U {
label: 'U'
base: 'u'
shift, capslock: 'U'
alt: '\u0308'
ctrl, meta: none
}
key V {
label: 'V'
base: 'v'
shift, capslock: 'V'
ctrl, alt, meta: none
}
key W {
label: 'W'
base: 'w'
shift, capslock: 'W'
ctrl, alt, meta: none
}
key X {
label: 'X'
base: 'x'
shift, capslock: 'X'
ctrl, alt, meta: none
}
key Y {
label: 'Y'
base: 'y'
shift, capslock: 'Y'
ctrl, alt, meta: none
}
key Z {
label: 'Z'
base: 'z'
shift, capslock: 'Z'
ctrl, alt, meta: none
}
key 0 {
label, number: '0'
base: '0'
shift: ')'
ctrl, alt, meta: none
}
key 1 {
label, number: '1'
base: '1'
shift: '!'
ctrl, alt, meta: none
}
key 2 {
label, number: '2'
base: '2'
shift: '@'
ctrl, alt, meta: none
}
key 3 {
label, number: '3'
base: '3'
shift: '#'
ctrl, alt, meta: none
}
key 4 {
label, number: '4'
base: '4'
shift: '$'
ctrl, alt, meta: none
}
key 5 {
label, number: '5'
base: '5'
shift: '%'
ctrl, alt, meta: none
}
key 6 {
label, number: '6'
base: '6'
shift: '^'
ctrl, alt, meta: none
alt+shift: '\u0302'
}
key 7 {
label, number: '7'
base: '7'
shift: '&'
ctrl, alt, meta: none
}
key 8 {
label, number: '8'
base: '8'
shift: '*'
ctrl, alt, meta: none
}
key 9 {
label, number: '9'
base: '9'
shift: '('
ctrl, alt, meta: none
}
key SPACE {
label: ' '
base: ' '
ctrl: none
alt, meta: fallback SEARCH
}
key ENTER {
label: '\n'
base: '\n'
ctrl, alt, meta: none
}
key TAB {
label: '\t'
base: '\t'
ctrl, alt, meta: none
}
key COMMA {
label, number: ','
base: ','
shift: '<'
ctrl, alt, meta: none
}
key PERIOD {
label, number: '.'
base: '.'
shift: '>'
ctrl, alt, meta: none
}
key SLASH {
label, number: '/'
base: '/'
shift: '?'
ctrl, alt, meta: none
}
key GRAVE {
label, number: '`'
base: '`'
shift: '~'
alt: '\u0300'
alt+shift: '\u0303'
ctrl, meta: none
}
key MINUS {
label, number: '-'
base: '-'
shift: '_'
ctrl, alt, meta: none
}
key EQUALS {
label, number: '='
base: '='
shift: '+'
ctrl, alt, meta: none
}
key LEFT_BRACKET {
label, number: '['
base: '['
shift: '{'
ctrl, alt, meta: none
}
key RIGHT_BRACKET {
label, number: ']'
base: ']'
shift: '}'
ctrl, alt, meta: none
}
key BACKSLASH {
label, number: '\\'
base: '\\'
shift: '|'
ctrl, alt, meta: none
}
key SEMICOLON {
label, number: ';'
base: ';'
shift: ':'
ctrl, alt, meta: none
}
key APOSTROPHE {
label, number: '\''
base: '\''
shift: '"'
ctrl, alt, meta: none
}
### Numeric keypad ###
key NUMPAD_0 {
label, number: '0'
base: fallback INSERT
numlock: '0'
ctrl, alt, meta: none
}
key NUMPAD_1 {
label, number: '1'
base: fallback MOVE_END
numlock: '1'
ctrl, alt, meta: none
}
key NUMPAD_2 {
label, number: '2'
base: fallback DPAD_DOWN
numlock: '2'
ctrl, alt, meta: none
}
key NUMPAD_3 {
label, number: '3'
base: fallback PAGE_DOWN
numlock: '3'
ctrl, alt, meta: none
}
key NUMPAD_4 {
label, number: '4'
base: fallback DPAD_LEFT
numlock: '4'
ctrl, alt, meta: none
}
key NUMPAD_5 {
label, number: '5'
base: fallback DPAD_CENTER
numlock: '5'
ctrl, alt, meta: none
}
key NUMPAD_6 {
label, number: '6'
base: fallback DPAD_RIGHT
numlock: '6'
ctrl, alt, meta: none
}
key NUMPAD_7 {
label, number: '7'
base: fallback MOVE_HOME
numlock: '7'
ctrl, alt, meta: none
}
key NUMPAD_8 {
label, number: '8'
base: fallback DPAD_UP
numlock: '8'
ctrl, alt, meta: none
}
key NUMPAD_9 {
label, number: '9'
base: fallback PAGE_UP
numlock: '9'
ctrl, alt, meta: none
}
key NUMPAD_LEFT_PAREN {
label, number: '('
base: '('
ctrl, alt, meta: none
}
key NUMPAD_RIGHT_PAREN {
label, number: ')'
base: ')'
ctrl, alt, meta: none
}
key NUMPAD_DIVIDE {
label, number: '/'
base: '/'
ctrl, alt, meta: none
}
key NUMPAD_MULTIPLY {
label, number: '*'
base: '*'
ctrl, alt, meta: none
}
key NUMPAD_SUBTRACT {
label, number: '-'
base: '-'
ctrl, alt, meta: none
}
key NUMPAD_ADD {
label, number: '+'
base: '+'
ctrl, alt, meta: none
}
key NUMPAD_DOT {
label, number: '.'
base: fallback FORWARD_DEL
numlock: '.'
ctrl, alt, meta: none
}
key NUMPAD_COMMA {
label, number: ','
base: ','
ctrl, alt, meta: none
}
key NUMPAD_EQUALS {
label, number: '='
base: '='
ctrl, alt, meta: none
}
key NUMPAD_ENTER {
label: '\n'
base: '\n' fallback ENTER
ctrl, alt, meta: none fallback ENTER
}
### Special keys on phones ###
key AT {
label, number: '@'
base: '@'
}
key STAR {
label, number: '*'
base: '*'
}
key POUND {
label, number: '#'
base: '#'
}
key PLUS {
label, number: '+'
base: '+'
}
### Non-printing keys ###
key ESCAPE {
base: fallback BACK
alt, meta: fallback HOME
ctrl: fallback MENU
}
### Gamepad buttons ###
key BUTTON_A {
base: fallback BACK
}
key BUTTON_B {
base: fallback BACK
}
key BUTTON_C {
base: fallback BACK
}
key BUTTON_X {
base: fallback DPAD_CENTER
}
key BUTTON_Y {
base: fallback DPAD_CENTER
}
key BUTTON_Z {
base: fallback DPAD_CENTER
}
key BUTTON_L1 {
base: none
}
key BUTTON_R1 {
base: none
}
key BUTTON_L2 {
base: none
}
key BUTTON_R2 {
base: none
}
key BUTTON_THUMBL {
base: fallback DPAD_CENTER
}
key BUTTON_THUMBR {
base: fallback DPAD_CENTER
}
key BUTTON_START {
base: fallback HOME
}
key BUTTON_SELECT {
base: fallback MENU
}
key BUTTON_MODE {
base: fallback MENU
}
key BUTTON_1 {
base: fallback DPAD_CENTER
}
key BUTTON_2 {
base: fallback DPAD_CENTER
}
key BUTTON_3 {
base: fallback DPAD_CENTER
}
key BUTTON_4 {
base: fallback DPAD_CENTER
}
key BUTTON_5 {
base: fallback DPAD_CENTER
}
key BUTTON_6 {
base: fallback DPAD_CENTER
}
key BUTTON_7 {
base: fallback DPAD_CENTER
}
key BUTTON_8 {
base: fallback DPAD_CENTER
}
key BUTTON_9 {
base: fallback DPAD_CENTER
}
key BUTTON_10 {
base: fallback DPAD_CENTER
}
key BUTTON_11 {
base: fallback DPAD_CENTER
}
key BUTTON_12 {
base: fallback DPAD_CENTER
}
key BUTTON_13 {
base: fallback DPAD_CENTER
}
key BUTTON_14 {
base: fallback DPAD_CENTER
}
key BUTTON_15 {
base: fallback DPAD_CENTER
}
key BUTTON_16 {
base: fallback DPAD_CENTER
}

544
keychars/Virtual.kcm Normal file
View File

@ -0,0 +1,544 @@
# 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.
#
# Key character map for a built-in generic virtual keyboard primarily used
# for instrumentation and testing purposes.
#
type FULL
### Basic QWERTY keys ###
key A {
label: 'A'
base: 'a'
shift, capslock: 'A'
ctrl, alt, meta: none
}
key B {
label: 'B'
base: 'b'
shift, capslock: 'B'
ctrl, alt, meta: none
}
key C {
label: 'C'
base: 'c'
shift, capslock: 'C'
alt: '\u00e7'
shift+alt: '\u00c7'
ctrl, meta: none
}
key D {
label: 'D'
base: 'd'
shift, capslock: 'D'
ctrl, alt, meta: none
}
key E {
label: 'E'
base: 'e'
shift, capslock: 'E'
alt: '\u0301'
ctrl, meta: none
}
key F {
label: 'F'
base: 'f'
shift, capslock: 'F'
ctrl, alt, meta: none
}
key G {
label: 'G'
base: 'g'
shift, capslock: 'G'
ctrl, alt, meta: none
}
key H {
label: 'H'
base: 'h'
shift, capslock: 'H'
ctrl, alt, meta: none
}
key I {
label: 'I'
base: 'i'
shift, capslock: 'I'
alt: '\u0302'
ctrl, meta: none
}
key J {
label: 'J'
base: 'j'
shift, capslock: 'J'
ctrl, alt, meta: none
}
key K {
label: 'K'
base: 'k'
shift, capslock: 'K'
ctrl, alt, meta: none
}
key L {
label: 'L'
base: 'l'
shift, capslock: 'L'
ctrl, alt, meta: none
}
key M {
label: 'M'
base: 'm'
shift, capslock: 'M'
ctrl, alt, meta: none
}
key N {
label: 'N'
base: 'n'
shift, capslock: 'N'
alt: '\u0303'
ctrl, meta: none
}
key O {
label: 'O'
base: 'o'
shift, capslock: 'O'
ctrl, alt, meta: none
}
key P {
label: 'P'
base: 'p'
shift, capslock: 'P'
ctrl, alt, meta: none
}
key Q {
label: 'Q'
base: 'q'
shift, capslock: 'Q'
ctrl, alt, meta: none
}
key R {
label: 'R'
base: 'r'
shift, capslock: 'R'
ctrl, alt, meta: none
}
key S {
label: 'S'
base: 's'
shift, capslock: 'S'
alt: '\u00df'
ctrl, meta: none
}
key T {
label: 'T'
base: 't'
shift, capslock: 'T'
ctrl, alt, meta: none
}
key U {
label: 'U'
base: 'u'
shift, capslock: 'U'
alt: '\u0308'
ctrl, meta: none
}
key V {
label: 'V'
base: 'v'
shift, capslock: 'V'
ctrl, alt, meta: none
}
key W {
label: 'W'
base: 'w'
shift, capslock: 'W'
ctrl, alt, meta: none
}
key X {
label: 'X'
base: 'x'
shift, capslock: 'X'
ctrl, alt, meta: none
}
key Y {
label: 'Y'
base: 'y'
shift, capslock: 'Y'
ctrl, alt, meta: none
}
key Z {
label: 'Z'
base: 'z'
shift, capslock: 'Z'
ctrl, alt, meta: none
}
key 0 {
label, number: '0'
base: '0'
shift: ')'
ctrl, alt, meta: none
}
key 1 {
label, number: '1'
base: '1'
shift: '!'
ctrl, alt, meta: none
}
key 2 {
label, number: '2'
base: '2'
shift: '@'
ctrl, alt, meta: none
}
key 3 {
label, number: '3'
base: '3'
shift: '#'
ctrl, alt, meta: none
}
key 4 {
label, number: '4'
base: '4'
shift: '$'
ctrl, alt, meta: none
}
key 5 {
label, number: '5'
base: '5'
shift: '%'
ctrl, alt, meta: none
}
key 6 {
label, number: '6'
base: '6'
shift: '^'
ctrl, alt, meta: none
alt+shift: '\u0302'
}
key 7 {
label, number: '7'
base: '7'
shift: '&'
ctrl, alt, meta: none
}
key 8 {
label, number: '8'
base: '8'
shift: '*'
ctrl, alt, meta: none
}
key 9 {
label, number: '9'
base: '9'
shift: '('
ctrl, alt, meta: none
}
key SPACE {
label: ' '
base: ' '
ctrl, alt: none
meta: fallback SEARCH
}
key ENTER {
label: '\n'
base: '\n'
ctrl, alt, meta: none
}
key TAB {
label: '\t'
base: '\t'
ctrl, alt: none
meta: fallback APP_SWITCH
}
key COMMA {
label, number: ','
base: ','
shift: '<'
ctrl, alt, meta: none
}
key PERIOD {
label, number: '.'
base: '.'
shift: '>'
ctrl, alt, meta: none
}
key SLASH {
label, number: '/'
base: '/'
shift: '?'
ctrl, alt, meta: none
}
key GRAVE {
label, number: '`'
base: '`'
shift: '~'
alt: '\u0300'
alt+shift: '\u0303'
ctrl, meta: none
}
key MINUS {
label, number: '-'
base: '-'
shift: '_'
ctrl, alt, meta: none
}
key EQUALS {
label, number: '='
base: '='
shift: '+'
ctrl, alt, meta: none
}
key LEFT_BRACKET {
label, number: '['
base: '['
shift: '{'
ctrl, alt, meta: none
}
key RIGHT_BRACKET {
label, number: ']'
base: ']'
shift: '}'
ctrl, alt, meta: none
}
key BACKSLASH {
label, number: '\\'
base: '\\'
shift: '|'
ctrl, alt, meta: none
}
key SEMICOLON {
label, number: ';'
base: ';'
shift: ':'
ctrl, alt, meta: none
}
key APOSTROPHE {
label, number: '\''
base: '\''
shift: '"'
ctrl, alt, meta: none
}
### Numeric keypad ###
key NUMPAD_0 {
label, number: '0'
base: fallback INSERT
numlock: '0'
ctrl, alt, meta: none
}
key NUMPAD_1 {
label, number: '1'
base: fallback MOVE_END
numlock: '1'
ctrl, alt, meta: none
}
key NUMPAD_2 {
label, number: '2'
base: fallback DPAD_DOWN
numlock: '2'
ctrl, alt, meta: none
}
key NUMPAD_3 {
label, number: '3'
base: fallback PAGE_DOWN
numlock: '3'
ctrl, alt, meta: none
}
key NUMPAD_4 {
label, number: '4'
base: fallback DPAD_LEFT
numlock: '4'
ctrl, alt, meta: none
}
key NUMPAD_5 {
label, number: '5'
base: fallback DPAD_CENTER
numlock: '5'
ctrl, alt, meta: none
}
key NUMPAD_6 {
label, number: '6'
base: fallback DPAD_RIGHT
numlock: '6'
ctrl, alt, meta: none
}
key NUMPAD_7 {
label, number: '7'
base: fallback MOVE_HOME
numlock: '7'
ctrl, alt, meta: none
}
key NUMPAD_8 {
label, number: '8'
base: fallback DPAD_UP
numlock: '8'
ctrl, alt, meta: none
}
key NUMPAD_9 {
label, number: '9'
base: fallback PAGE_UP
numlock: '9'
ctrl, alt, meta: none
}
key NUMPAD_LEFT_PAREN {
label, number: '('
base: '('
ctrl, alt, meta: none
}
key NUMPAD_RIGHT_PAREN {
label, number: ')'
base: ')'
ctrl, alt, meta: none
}
key NUMPAD_DIVIDE {
label, number: '/'
base: '/'
ctrl, alt, meta: none
}
key NUMPAD_MULTIPLY {
label, number: '*'
base: '*'
ctrl, alt, meta: none
}
key NUMPAD_SUBTRACT {
label, number: '-'
base: '-'
ctrl, alt, meta: none
}
key NUMPAD_ADD {
label, number: '+'
base: '+'
ctrl, alt, meta: none
}
key NUMPAD_DOT {
label, number: '.'
base: fallback FORWARD_DEL
numlock: '.'
ctrl, alt, meta: none
}
key NUMPAD_COMMA {
label, number: ','
base: ','
ctrl, alt, meta: none
}
key NUMPAD_EQUALS {
label, number: '='
base: '='
ctrl, alt, meta: none
}
key NUMPAD_ENTER {
label: '\n'
base: '\n' fallback ENTER
ctrl, alt, meta: none fallback ENTER
}
### Special keys on phones ###
key AT {
label, number: '@'
base: '@'
}
key STAR {
label, number: '*'
base: '*'
}
key POUND {
label, number: '#'
base: '#'
}
key PLUS {
label, number: '+'
base: '+'
}
### Non-printing keys ###
key ESCAPE {
base: fallback BACK
meta: fallback HOME
alt: fallback MENU
}

23
keylayout/AVRCP.kl Normal file
View File

@ -0,0 +1,23 @@
# 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.
# Key layout used for Bluetooth AVRCP support.
key 200 MEDIA_PLAY WAKE
key 201 MEDIA_PAUSE WAKE
key 166 MEDIA_STOP WAKE
key 163 MEDIA_NEXT WAKE
key 165 MEDIA_PREVIOUS WAKE
key 168 MEDIA_REWIND WAKE
key 208 MEDIA_FAST_FORWARD WAKE

423
keylayout/Generic.kl Normal file
View File

@ -0,0 +1,423 @@
# 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 ESCAPE
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_RIGHT
# 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 VOLUME_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 LANG
# 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 CALCULATOR
# key 141 "KEY_SETUP"
key 142 POWER WAKE
key 143 POWER WAKE
# 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 POWER WAKE
# key 153 "KEY_DIRECTION"
# key 154 "KEY_CYCLEWINDOWS"
key 155 ENVELOPE
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 MUSIC
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 MUSIC
# 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 "KEY_BRIGHTNESSDOWN"
# key 225 "KEY_BRIGHTNESSUP"
key 226 HEADSETHOOK
key 256 BUTTON_1
key 257 BUTTON_2
key 258 BUTTON_3
key 259 BUTTON_4
key 260 BUTTON_5
key 261 BUTTON_6
key 262 BUTTON_7
key 263 BUTTON_8
key 264 BUTTON_9
key 265 BUTTON_10
key 266 BUTTON_11
key 267 BUTTON_12
key 268 BUTTON_13
key 269 BUTTON_14
key 270 BUTTON_15
key 271 BUTTON_16
key 288 BUTTON_1
key 289 BUTTON_2
key 290 BUTTON_3
key 291 BUTTON_4
key 292 BUTTON_5
key 293 BUTTON_6
key 294 BUTTON_7
key 295 BUTTON_8
key 296 BUTTON_9
key 297 BUTTON_10
key 298 BUTTON_11
key 299 BUTTON_12
key 300 BUTTON_13
key 301 BUTTON_14
key 302 BUTTON_15
key 303 BUTTON_16
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 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 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 429 CONTACTS
# 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
# Joystick and game controller axes.
# Axes that are not mapped will be assigned generic axis numbers by the input subsystem.
axis 0x00 X
axis 0x01 Y
axis 0x02 Z
axis 0x03 RX
axis 0x04 RY
axis 0x05 RZ
axis 0x06 THROTTLE
axis 0x07 RUDDER
axis 0x08 WHEEL
axis 0x09 GAS
axis 0x0a BRAKE
axis 0x10 HAT_X
axis 0x11 HAT_Y

View File

@ -0,0 +1,46 @@
# 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.
#
# XBox 360 USB Controller
#
key 304 BUTTON_A
key 305 BUTTON_B
key 307 BUTTON_X
key 308 BUTTON_Y
key 310 BUTTON_L1
key 311 BUTTON_R1
key 314 BUTTON_SELECT
key 315 BUTTON_START
key 316 BUTTON_MODE
key 317 BUTTON_THUMBL
key 318 BUTTON_THUMBR
# Left and right stick.
# The reported value for flat is 128 out of a range from -32767 to 32768, which is absurd.
# This confuses applications that rely on the flat value because the joystick actually
# settles in a flat range of +/- 4096 or so.
axis 0x00 X flat 4096
axis 0x01 Y flat 4096
axis 0x03 Z flat 4096
axis 0x04 RZ flat 4096
# Triggers.
axis 0x02 LTRIGGER
axis 0x05 RTRIGGER
# Hat.
axis 0x10 HAT_X
axis 0x11 HAT_Y

View File

@ -0,0 +1,37 @@
# 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.
#
# Logitech Dual Action Controller
#
key 0x120 BUTTON_A
key 0x123 BUTTON_B
key 0x121 BUTTON_X
key 0x122 BUTTON_Y
key 0x124 BUTTON_L1
key 0x125 BUTTON_R1
key 0x126 BUTTON_L2
key 0x127 BUTTON_R2
key 0x128 BUTTON_SELECT
key 0x129 BUTTON_START
key 0x12a BUTTON_THUMBL
key 0x12b BUTTON_THUMBR
axis 0x00 X
axis 0x01 Y
axis 0x02 Z
axis 0x05 RZ
axis 0x10 HAT_X
axis 0x11 HAT_Y

View File

@ -0,0 +1,53 @@
# 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.
#
# Logitech G25 Racing Wheel (in Compatibility Mode)
#
# 4 way buttons above hat
key 0x121 BUTTON_A
key 0x123 BUTTON_B
key 0x120 BUTTON_X
key 0x122 BUTTON_Y
# Row of buttons under hat
key 0x12b BUTTON_1
key 0x128 BUTTON_2
key 0x129 BUTTON_3
key 0x12a BUTTON_4
# Gear shift positions
# 0x12a top-left gear (aliased as BUTTON_4)
# 0x12b bottom-left gear (aliased as BUTTON_1)
# Buttons on wheel
key 0x127 BUTTON_L1
key 0x126 BUTTON_R1
# Toggles under wheel
key 0x125 BUTTON_L2
key 0x124 BUTTON_R2
# Hat
axis 0x10 HAT_X
axis 0x11 HAT_Y
# Steering Wheel
axis 0x00 WHEEL
# Accelerator / Brake
# 00..7e : accelerator
# 80..ff : brake
axis 0x01 split 0x7f GAS BRAKE

View File

@ -0,0 +1,62 @@
# 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.
#
# Logitech G25 Racing Wheel (in Native Mode)
#
# 4 way buttons above hat
key 0x121 BUTTON_A
key 0x123 BUTTON_B
key 0x120 BUTTON_X
key 0x122 BUTTON_Y
# Row of buttons under hat
key 0x12b BUTTON_1
key 0x128 BUTTON_2
key 0x129 BUTTON_3
key 0x12a BUTTON_4
# Gear shift positions
key 0x12c BUTTON_5
key 0x12d BUTTON_6
key 0x12e BUTTON_7
key 0x12f BUTTON_8
key 0x2d0 BUTTON_9
key 0x2d1 BUTTON_10
key 0x2d2 BUTTON_11
# Buttons on wheel
key 0x127 BUTTON_L1
key 0x126 BUTTON_R1
# Toggles under wheel
key 0x125 BUTTON_L2
key 0x124 BUTTON_R2
# Hat
axis 0x10 HAT_X
axis 0x11 HAT_Y
# Steering Wheel
axis 0x00 WHEEL
# Clutch
axis 0x01 invert GENERIC_1
# Accelerator
axis 0x02 invert GAS
# Brake
axis 0x05 invert BRAKE

View File

@ -0,0 +1,133 @@
# 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.
#
# Logitech Revue Wireless keyboard
#
# Notes:
# - The GRAVE key is emulated by the keyboard.
# ALT + LEFT_BRACKET produces GRAVE.
# ALT + RIGHT_BRACKET produces SHIFT + GRAVE.
# - FORWARD_DEL is produced by fn + BACKSPACE
# - PAGE_UP / PAGE_DOWN is produced by fn + CHANNEL_UP / CHANNEL_DOWN
# - The AVR / STB / TV power and input buttons seem to be non-functional
# as well as several of the other fn buttons and the PIP button?
key 1 ESCAPE
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 56 ALT_RIGHT
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 87 F11
key 88 F12
key 96 DPAD_CENTER
key 97 CTRL_RIGHT
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 NUMPAD_ENTER
key 111 FORWARD_DEL
key 113 VOLUME_MUTE
key 114 VOLUME_DOWN
key 115 VOLUME_UP
key 119 MEDIA_PAUSE
key 125 SEARCH
key 127 MENU
key 156 BOOKMARK
key 158 BACK
key 163 MEDIA_NEXT
key 165 MEDIA_PREVIOUS
key 166 MEDIA_STOP
key 167 MEDIA_RECORD
key 168 MEDIA_REWIND
key 172 HOME
key 207 MEDIA_PLAY
key 208 MEDIA_FAST_FORWARD
# key 288 left mouse button
# key 289 right mouse button (fn + button)
key 362 GUIDE
key 366 DVR
key 377 TV
key 402 CHANNEL_UP
key 403 CHANNEL_DOWN
key 418 ZOOM_IN
key 419 ZOOM_OUT

View File

@ -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

View File

@ -0,0 +1,76 @@
# 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.
#
# Sony Playstation(R)3 Controller
#
key 0x124 DPAD_UP
key 0x125 DPAD_RIGHT
key 0x126 DPAD_DOWN
key 0x127 DPAD_LEFT
key 0x120 BUTTON_SELECT
key 0x123 BUTTON_START
key 0x12f BUTTON_A
key 0x12c BUTTON_B
key 0x12e BUTTON_X
key 0x12d BUTTON_Y
key 0x12a BUTTON_L1
key 0x12b BUTTON_R1
key 0x128 BUTTON_L2
key 0x129 BUTTON_R2
key 0x121 BUTTON_THUMBL
key 0x122 BUTTON_THUMBR
# PS key
key 0x2d0 BUTTON_1
# Left Analog Stick
axis 0x00 X
axis 0x01 Y
# Right Analog Stick
axis 0x02 Z
axis 0x05 RZ
# DPAD
# axis 0x2c -HAT_Y
# axis 0x2d +HAT_X
# axis 0x2e +HAT_Y
# axis 0x2f -HAT_X
# L2 trigger
axis 0x30 LTRIGGER
# R2 trigger
axis 0x31 RTRIGGER
# L1 trigger
# axis 0x32
# R1 trigger
# axis 0x33
# Triangle
# axis 0x34
# Circle
# axis 0x35
# Cross
# axis 0x36
# Square
# axis 0x37

View File

@ -0,0 +1,119 @@
# 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.
#
# Apple Wireless Keyboard
#
# Notes:
# - Keys such as PAGE_UP and FORWARD_DEL are produced using the
# function key.
# - Special function keys for brightness control, etc. are not
# implemented here.
key 1 ESCAPE
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 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 87 F11
key 88 F12
key 100 ALT_RIGHT
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 NUMPAD_ENTER
key 111 FORWARD_DEL
key 113 VOLUME_MUTE
key 114 VOLUME_DOWN
key 115 VOLUME_UP
key 120 APP_SWITCH
key 125 META_LEFT
key 126 META_RIGHT
key 161 MEDIA_EJECT
key 163 MEDIA_NEXT
key 164 MEDIA_PLAY_PAUSE
key 165 MEDIA_PREVIOUS
# key 204 show gadgets
# key 224 reduce brightness
# key 225 increase brightness
# key 229 blank special function on F5
# key 230 blank special function on F6
key 464 FUNCTION

View File

@ -0,0 +1,105 @@
# 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.
#
# Motorola Bluetooth Wireless Keyboard.
#
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 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 87 F11
key 88 F12
key 97 CTRL_RIGHT
key 102 HOME
key 103 DPAD_UP
key 105 DPAD_LEFT
key 106 DPAD_RIGHT
key 107 MOVE_END
key 108 DPAD_DOWN
key 111 FORWARD_DEL
key 113 VOLUME_MUTE
key 114 VOLUME_DOWN
key 115 VOLUME_UP
key 125 MENU
key 127 SEARCH
key 163 MEDIA_NEXT
key 164 MEDIA_PLAY_PAUSE
key 165 MEDIA_PREVIOUS
key 166 MEDIA_STOP
# key 226 tbd reserved key

116
keylayout/cyttsp-i2c.kl Normal file
View File

@ -0,0 +1,116 @@
# Copyright (c) 2011, Code Aurora Forum. All rights reserved.
#
# 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.
#
# Function keys
key 59 MENU WAKE
key 60 HOME WAKE
key 61 CALL WAKE_DROPPED
key 62 BACK WAKE_DROPPED
key 63 ENDCALL WAKE_DROPPED
key 64 MEDIA_NEXT WAKE
key 65 MEDIA_PLAY_PAUSE WAKE
key 66 MEDIA_PREVIOUS WAKE
key 67 MEDIA_STOP WAKE
key 68 CAMERA
key 87 POWER WAKE
key 217 SEARCH WAKE_DROPPED
# Row 2
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 110 MENU WAKE
key 102 HOME WAKE
# Row 3
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 158 BACK WAKE_DROPPED
key 104 DPAD_UP WAKE_DROPPED
# Row 4
key 58 SHIFT_LEFT WAKE
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 28 DPAD_CENTER WAKE_DROPPED
key 109 DPAD_DOWN WAKE_DROPPED
# Row 5
key 183 SYM 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 103 DPAD_UP WAKE_DROPPED
key 107 ENDCALL WAKE_DROPPED
key 152 ENDCALL WAKE_DROPPED
# Row 6
key 42 SHIFT_LEFT WAKE_DROPPED
key 464 MENU WAKE_DROPPED
key 29 MENU WAKE_DROPPED
key 56 MENU WAKE_DROPPED
key 151 MENU WAKE_DROPPED
key 57 SPACE WAKE_DROPPED
key 111 DEL WAKE_DROPPED
key 54 SHIFT_RIGHT WAKE_DROPPED
key 105 DPAD_LEFT WAKE_DROPPED
key 108 DPAD_DOWN WAKE_DROPPED
key 106 DPAD_RIGHT WAKE_DROPPED
# Volume keys
key 115 VOLUME_UP WAKE_DROPPED
key 114 VOLUME_DOWN WAKE_DROPPED
# Numeric keypad
key 522 STAR WAKE_DROPPED
key 523 POUND WAKE_DROPPED
key 355 DEL WAKE_DROPPED
#L- Mapping
key 139 MENU WAKE
#SEND Key Mapping
key 231 CALL WAKE_DROPPED
# R+ Mapping
key 142 HOME WAKE_DROPPED
# Camera Keys
key 766 FOCUS
key 528 CAMERA

116
keylayout/keypad_8960.kl Normal file
View File

@ -0,0 +1,116 @@
# Copyright (c) 2011, Code Aurora Forum.
#
# 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.
#
# Function keys
key 59 MENU WAKE
key 60 HOME WAKE
key 61 CALL WAKE_DROPPED
key 62 BACK WAKE_DROPPED
key 63 ENDCALL WAKE_DROPPED
key 64 MEDIA_NEXT WAKE
key 65 MEDIA_PLAY_PAUSE WAKE
key 66 MEDIA_PREVIOUS WAKE
key 67 MEDIA_STOP WAKE
key 68 CAMERA
key 87 POWER WAKE
key 217 SEARCH WAKE_DROPPED
# Row 2
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 110 MENU WAKE
key 102 HOME WAKE
# Row 3
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 158 BACK WAKE_DROPPED
key 104 DPAD_UP WAKE_DROPPED
# Row 4
key 58 SHIFT_LEFT WAKE
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 28 DPAD_CENTER WAKE_DROPPED
key 109 DPAD_DOWN WAKE_DROPPED
# Row 5
key 183 SYM 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 103 DPAD_UP WAKE_DROPPED
key 107 ENDCALL WAKE_DROPPED
key 152 ENDCALL WAKE_DROPPED
# Row 6
key 42 SHIFT_LEFT WAKE_DROPPED
key 464 MENU WAKE_DROPPED
key 29 MENU WAKE_DROPPED
key 56 MENU WAKE_DROPPED
key 151 MENU WAKE_DROPPED
key 57 SPACE WAKE_DROPPED
key 111 DEL WAKE_DROPPED
key 54 SHIFT_RIGHT WAKE_DROPPED
key 105 DPAD_LEFT WAKE_DROPPED
key 108 DPAD_DOWN WAKE_DROPPED
key 106 DPAD_RIGHT WAKE_DROPPED
# Volume keys
key 115 VOLUME_UP WAKE_DROPPED
key 114 VOLUME_DOWN WAKE_DROPPED
# Numeric keypad
key 522 STAR WAKE_DROPPED
key 523 POUND WAKE_DROPPED
key 355 DEL WAKE_DROPPED
#L- Mapping
key 139 MENU WAKE
#SEND Key Mapping
key 231 CALL WAKE_DROPPED
# R+ Mapping
key 142 HOME WAKE_DROPPED
# Camera Keys
key 766 FOCUS
key 528 CAMERA

149
media/media_codecs.xml Normal file
View File

@ -0,0 +1,149 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2012-2013 The Android Open Source Project
Copyright (C) 2012-2013 The Linux Foundation. All rights reserved.
Not a contribution.
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.
-->
<CodecList>
<Encoders>
<!-- Audio Hardware -->
<MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm" />
<MediaCodec name="OMX.qcom.audio.encoder.evrc" type="audio/evrc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.google.flac.encoder" type="audio/flac"/>
<MediaCodec name="OMX.qcom.audio.encoder.qcelp13" type="audio/qcelp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<!-- Audio Software -->
<MediaCodec name="AACEncoder" type="audio/mp4a-latm" />
<MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp" />
<MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb" />
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation"/>
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
</MediaCodec>
<!-- Video Software -->
<MediaCodec name="OMX.google.h264.encoder" type="video/avc" />
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" />
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" />
</Encoders>
<Decoders>
<!-- Audio Hardware -->
<MediaCodec name="OMX.qcom.audio.decoder.wma" type="audio/x-ms-wma" >
<Quirk name="requires-global-flush" />
<Quirk name="requires-wma-pro-component" />
</MediaCodec>
<MediaCodec name="OMX.qcom.audio.decoder.wmaLossLess" type="audio/x-ms-wma" >
<Quirk name="requires-global-flush" />
</MediaCodec>
<MediaCodec name="OMX.qcom.audio.decoder.wma10Pro" type="audio/x-ms-wma" >
<Quirk name="requires-global-flush" />
</MediaCodec>
<MediaCodec name="OMX.qcom.audio.decoder.amrwbplus" type="audio/amr-wb-plus" >
</MediaCodec>
<!-- Audio Software -->
<MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis" />
<MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg" />
<MediaCodec name="MP3Decoder" type="audio/mpeg" />
<MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp" />
<MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb" />
<MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm" />
<MediaCodec name="AACDecoder" type="audio/mp4a-latm" />
<MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw" />
<MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw" />
<MediaCodec name="OMX.qcom.audio.decoder.Qcelp13" type="audio/qcelp" >
<Quirk name="requires-global-flush" />
</MediaCodec>
<MediaCodec name="OMX.qcom.audio.decoder.evrc" type="audio/evrc" >
<Quirk name="requires-global-flush" />
</MediaCodec>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg2" type="video/mpeg2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vc1" type="video/x-ms-wmv" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.divx" type="video/divx" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.divx311" type="video/divx311" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.divx4" type="video/divx4" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevchybrid" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="defers-output-buffer-allocation" />
</MediaCodec>
<!-- Video Software -->
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" />
<MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" />
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" />
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" />
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" />
</Decoders>
</CodecList>

108
msm8974.mk Normal file
View File

@ -0,0 +1,108 @@
# 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.
# Permissions
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.xml \
frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:system/etc/permissions/android.hardware.camera.flash-autofocus.xml \
frameworks/native/data/etc/android.hardware.camera.front.xml:system/etc/permissions/android.hardware.camera.front.xml \
frameworks/native/data/etc/android.hardware.location.gps.xml:system/etc/permissions/android.hardware.location.gps.xml \
frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \
frameworks/native/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hardware.wifi.direct.xml \
frameworks/native/data/etc/android.hardware.sensor.proximity.xml:system/etc/permissions/android.hardware.sensor.proximity.xml \
frameworks/native/data/etc/android.hardware.sensor.light.xml:system/etc/permissions/android.hardware.sensor.light.xml \
frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:system/etc/permissions/android.hardware.sensor.gyroscope.xml \
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
frameworks/native/data/etc/android.hardware.sensor.barometer.xml:system/etc/permissions/android.hardware.sensor.barometer.xml \
frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml \
frameworks/native/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb.host.xml \
frameworks/native/data/etc/android.software.sip.voip.xml:system/etc/permissions/android.software.sip.voip.xml \
frameworks/base/nfc-extras/com.android.nfc_extras.xml:system/etc/permissions/com.android.nfc_extras.xml \
frameworks/native/data/etc/android.hardware.nfc.xml:system/etc/permissions/android.hardware.nfc.xml \
frameworks/native/data/etc/android.hardware.nfc.hce.xml:system/etc/permissions/android.hardware.nfc.hce.xml \
frameworks/native/data/etc/com.nxp.mifare.xml:system/etc/permissions/com.nxp.mifare.xml \
frameworks/native/data/etc/android.hardware.telephony.gsm.xml:system/etc/permissions/android.hardware.telephony.gsm.xml \
frameworks/native/data/etc/android.hardware.telephony.cdma.xml:system/etc/permissions/android.hardware.telephony.cdma.xml \
frameworks/native/data/etc/android.hardware.bluetooth_le.xml:system/etc/permissions/android.hardware.bluetooth_le.xml \
packages/wallpapers/LivePicker/android.software.live_wallpaper.xml:system/etc/permissions/android.software.live_wallpaper.xml
# Audio
PRODUCT_PACKAGES += \
audio_policy.msm8974 \
audio.primary.msm8974 \
audio.a2dp.default \
audio.usb.default \
audio.r_submix.default \
libaudio-resampler
# Camera Wrapper
PRODUCT_PACKAGES += \
camera.msm8974
# HAL
PRODUCT_PACKAGES += \
copybit.msm8974 \
gralloc.msm8974 \
hwcomposer.msm8974 \
power.msm8974 \
memtrack.msm8974
# Misc
PRODUCT_PACKAGES += \
com.android.future.usb.accessory
# Live Wallpapers
PRODUCT_PACKAGES += \
LiveWallpapers \
LiveWallpapersPicker \
VisualizationWallpapers \
librs_jni
# Media Codecs
PRODUCT_COPY_FILES += device/samsung/msm8974-common/media/media_codecs.xml:system/etc/media_codecs.xml
# keylayouts
PRODUCT_COPY_FILES += \
device/samsung/msm8974-common/keylayout/AVRCP.kl:system/usr/keylayout/AVRCP.kl \
device/samsung/msm8974-common/keylayout/Generic.kl:system/usr/keylayout/Generic.kl \
device/samsung/msm8974-common/keylayout/cyttsp-i2c.kl:system/usr/keylayout/cyttsp-i2c.kl \
device/samsung/msm8974-common/keylayout/keypad_8960.kl:system/usr/keylayout/keypad_8960.kl \
device/samsung/msm8974-common/keylayout/Vendor_045e_Product_028e.kl:system/usr/keylayout/Vendor_045e_Product_028e.kl \
device/samsung/msm8974-common/keylayout/Vendor_046d_Product_c216.kl:system/usr/keylayout/Vendor_046d_Product_c216.kl \
device/samsung/msm8974-common/keylayout/Vendor_046d_Product_c294.kl:system/usr/keylayout/Vendor_046d_Product_c294.kl \
device/samsung/msm8974-common/keylayout/Vendor_046d_Product_c299.kl:system/usr/keylayout/Vendor_046d_Product_c299.kl \
device/samsung/msm8974-common/keylayout/Vendor_046d_Product_c532.kl:system/usr/keylayout/Vendor_046d_Product_c532.kl \
device/samsung/msm8974-common/keylayout/Vendor_04e8_Product_7021.kl:system/usr/keylayout/Vendor_04e8_Product_7021.kl \
device/samsung/msm8974-common/keylayout/Vendor_054c_Product_0268.kl:system/usr/keylayout/Vendor_054c_Product_0268.kl \
device/samsung/msm8974-common/keylayout/Vendor_05ac_Product_0239.kl:system/usr/keylayout/Vendor_05ac_Product_0239.kl \
device/samsung/msm8974-common/keylayout/Vendor_22b8_Product_093d.kl:system/usr/keylayout/Vendor_22b8_Product_093d.kl
# Keychars
PRODUCT_COPY_FILES += \
device/samsung/msm8974-common/keychars/Generic.kcm:system/usr/keychars/Generic.kcm \
device/samsung/msm8974-common/keychars/Virtual.kcm:system/usr/keychars/Virtual.kcm
# Needed to reset bootmode when leaving recovery
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/recovery/postrecoveryboot.sh:recovery/root/sbin/postrecoveryboot.sh \
$(LOCAL_PATH)/recovery/postrecoveryboot.sh:recovery/system/bin/postrecoveryboot.sh
# We have enough storage space to hold precise GC data
PRODUCT_TAGS += dalvik.gc.type-precise
# Common overlay
DEVICE_PACKAGE_OVERLAYS += device/samsung/msm8974-common/overlay
# common msm8974
$(call inherit-product, device/samsung/qcom-common/qcom-common.mk)

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/common/assets/res/any/colors.xml
**
** Copyright 2006, 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.
*/
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Defines the shutdown options shown in the reboot dialog. -->
<array name="shutdown_reboot_options" translatable="false">
<item>@string/reboot_reboot</item>
<item>@string/reboot_recovery</item>
<item>@string/reboot_download</item>
</array>
<!-- Do not translate. Defines the shutdown actions passed to the kernel.
The first item should be empty for regular reboot. -->
<string-array name="shutdown_reboot_actions" translatable="false">
<item></item>
<item>recovery</item>
<item>download</item>
</string-array>
</resources>

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 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.
*/
-->
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources>
<!-- Our amoled doesn't animate well. needed for crt effect -->
<bool name="config_animateScreenLights">false</bool>
<!-- Flag indicating whether we should enable the automatic brightness in Settings.
config_hardware_automatic_brightness_available is not set, so we will use software implementation -->
<bool name="config_automatic_brightness_available">true</bool>
</resources>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/common/assets/res/any/strings.xml
**
** Copyright (c) 2013, The Linux Foundation. All rights reserved.
** Not a Contribution.
**
** Copyright 2006, 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.
*/
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="roamingText3">Network Extender</string>
</resources>

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<!-- Version History
version 1 - initial version.
version 2 - added recipientLimit.
version 3 - added min/max recycler values.
version 4 - added sms to mms text threshold.
-->
<mms_config version="4">
<!-- Flag indicating whether MMS should be enabled -->
<bool name="enabledMMS">true</bool>
<!-- Maximum message size in bytes for a MMS message -->
<int name="maxMessageSize">307200</int>
<!-- Maximum height for an attached image -->
<int name="maxImageHeight">1944</int>
<!-- Maximum width for an attached image -->
<int name="maxImageWidth">2592</int>
<!-- Maximum number of SMS message to save per thread before auto-delete kicks in.
This is the default value. -->
<int name="defaultSMSMessagesPerThread">10000</int>
<!-- Maximum number of MMS message to save per thread before auto-delete kicks in.
This is the default value. -->
<int name="defaultMMSMessagesPerThread">1000</int>
<!-- Minimum value for the number of messages kept per conversation. The user can never
set the limit below this value. -->
<int name="minMessageCountPerThread">10</int>
<!-- Maximum value for the number of messages kept per conversation. The user can never
set the limit above this value. -->
<int name="maxMessageCountPerThread">5000</int>
<!-- UAProf URL -->
<string name="uaProfUrl">http://gsm.lge.com/html/gsm/Nexus5-M3.xml</string>
<!-- Maximum number of recipients allowed per message. Use a value of -1
to indicate no limit. -->
<int name="recipientLimit">-1</int>
<!-- If true, The mms support slide duration.
If false, The mms does not support slide duration and we have to
set duration value. -->
<bool name="enableSlideDuration">true</bool>
<!-- Maximum length for message text. Use a value of -1
to indicate default value -->
<int name="maxMessageTextSize">-1</int>
<!-- User-Agent parameter used in MMS http request -->
<string name="userAgent">Nexus5</string>
</mms_config>

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Mobile network settings, network mode choices for a device supporting CDMA and LTE [CHAR LIMIT=25] -->
<string-array name="preferred_network_mode_choices_cm">
<item>LTE only</item>
<item>LTE/CDMA/EvDo/GSM/WCDMA</item>
<item>LTE/GSM/WCDMA</item>
<item>LTE/CDMA/EvDo</item>
<item>CDMA/EvDo auto</item>
<item>GSM/WCDMA auto</item>
<item>WCDMA only</item>
<item>GSM only</item>
<item>GSM/WCDMA preferred</item>
</string-array>
<string-array name="preferred_network_mode_choices">
<item>LTE only</item>
<item>LTE/CDMA/EvDo/GSM/WCDMA</item>
<item>LTE/GSM/WCDMA</item>
<item>LTE/CDMA/EvDo</item>
<item>CDMA/EvDo auto</item>
<item>GSM/WCDMA auto</item>
<item>WCDMA only</item>
<item>GSM only</item>
<item>GSM/WCDMA preferred</item>
</string-array>
<string-array name="preferred_network_mode_values" translatable="false">
<item>"11"</item>
<item>"10"</item>
<item>"9"</item>
<item>"8"</item>
<item>"4"</item>
<item>"3"</item>
<item>"2"</item>
<item>"1"</item>
<item>"0"</item>
</string-array>
</resources>

View File

@ -0,0 +1,11 @@
#!/sbin/sh
# The partition to use is named "PARAM" and can be found by dumping the PIT.
# 0: charge
# 1: direct
# 2: recovery_enter
# 3: recovery_end
# 4: download_end
echo -n -e '\x03\x00\x00\x00' > /dev/block/platform/msm_sdcc.1/by-name/param

3
sepolicy/app.te Normal file
View File

@ -0,0 +1,3 @@
# Grant GPU access to all processes started by Zygote.
# They need that to render the standard UI.
allow appdomain gpu_device:chr_file rw_file_perms;

1
sepolicy/bluetooth.te Normal file
View File

@ -0,0 +1 @@
allow bluetooth smd_device:chr_file rw_file_perms;

17
sepolicy/device.te Normal file
View File

@ -0,0 +1,17 @@
# GPU (used by most UI apps)
type gpu_device, dev_type;
# Qualcomm Secure Execution Environment Communicator (QSEECOM) device
type qseecom_device, dev_type;
type diag_device, dev_type;
type bcm2079x_device, dev_type;
# Qualcomm MSM Audio ACDB device
type msm_acdb_device, dev_type;
# Kickstart device used by QC qcks
type kickstart_device, dev_type;
# SMD device, used by hci_qcomm_init
type smd_device, dev_type;

1
sepolicy/domain.te Normal file
View File

@ -0,0 +1 @@
allow domain init_tmpfs:file read;

3
sepolicy/drmserver.te Normal file
View File

@ -0,0 +1,3 @@
# Grant DRM Service access to Qualcomm Secure Execution Environment Communicator (QSEECOM) device
allow drmserver qseecom_device:chr_file rw_file_perms;
allow drmserver sdcard_external:file open;

11
sepolicy/file.te Normal file
View File

@ -0,0 +1,11 @@
# Qualcomm MSM Interface (QMI) socket types
type qmux_audio_socket, file_type;
type qmux_bluetooth_socket, file_type;
type qmux_gps_socket, file_type;
type qmux_radio_socket, file_type;
type firmware_file, fs_type;
allow efs_file rootfs:filesystem associate;
allow cache_file rootfs:filesystem associate;
allow asec_apk_file rootfs:filesystem associate;

33
sepolicy/file_contexts Normal file
View File

@ -0,0 +1,33 @@
# GPU device
/dev/kgsl-3d0 u:object_r:gpu_device:s0
/dev/msm_rotator u:object_r:gpu_device:s0
# Qualcomm Secure Execution Environment Communicator (QSEECOM) device
/dev/qseecom u:object_r:qseecom_device:s0
# Qualcomm MSM Interface (QMI) devices
/dev/socket/qmux_audio/* u:object_r:qmux_audio_socket:s0
/dev/socket/qmux_bluetooth/* u:object_r:qmux_bluetooth_socket:s0
/dev/socket/qmux_gps/* u:object_r:qmux_gps_socket:s0
/dev/socket/qmux_radio/* u:object_r:qmux_radio_socket:s0
/dev/bcm2079x-i2c u:object_r:bcm2079x_device:s0
/dev/diag u:object_r:diag_device:s0
/dev/media([0-9])+ u:object_r:camera_device:s0
/dev/smd([0-9])+ u:object_r:smd_device:s0
/dev/mdm u:object_r:radio_device:s0
# Qualcomm MSM Audio ACDB device
/dev/msm_acdb u:object_r:msm_acdb_device:s0
/dev/ks_hsic_bridge u:object_r:kickstart_device:s0
/dev/efs_hsic_bridge u:object_r:kickstart_device:s0
/system/bin/qcks u:object_r:kickstart_exec:s0
/system/bin/efsks u:object_r:kickstart_exec:s0
/system/bin/ks u:object_r:kickstart_exec:s0
/data/nfc(/.*)? u:object_r:nfc_data_file:s0
/system/bin/hci_qcomm_init u:object_r:hci_exec:s0
/system/bin/bdAddrLoader u:object_r:hci_exec:s0

6
sepolicy/hci_init.te Normal file
View File

@ -0,0 +1,6 @@
type hci_init, domain;
permissive hci_init;
type hci_exec, file_type, exec_type;
type hci_data_file, file_type;
domain_auto_trans(shell, hci_exec, hci_init)
unconfined_domain(hci_init)

1
sepolicy/healthd.te Normal file
View File

@ -0,0 +1 @@
allow healthd rootfs:file entrypoint;

1
sepolicy/init.te Normal file
View File

@ -0,0 +1 @@
allow init wpa_socket:unix_dgram_socket { bind create };

6
sepolicy/init_shell.te Normal file
View File

@ -0,0 +1,6 @@
allow init_shell diag_device:chr_file { read write };
allow init_shell hci_exec:file rx_file_perms;
allow init_shell bluetooth_prop:property_service set;
allow init_shell smd_device:chr_file rw_file_perms;
allow init_shell unlabeled:file r_file_perms;
allow init_shell init:fifo_file r_file_perms;

3
sepolicy/keystore.te Normal file
View File

@ -0,0 +1,3 @@
# Grant keystore daemon access to Qualcomm Secure Execution Environment Communicator (QSEECOM) device
allow keystore qseecom_device:chr_file rw_file_perms;

5
sepolicy/kickstart.te Normal file
View File

@ -0,0 +1,5 @@
type kickstart, domain;
permissive kickstart;
type kickstart_exec, file_type, exec_type;
domain_auto_trans(init, kickstart_exec, kickstart)
unconfined_domain(kickstart)

13
sepolicy/mediaserver.te Normal file
View File

@ -0,0 +1,13 @@
# Grant access to Qualcomm MSM Audio ACDB device to mediaserver
allow mediaserver msm_acdb_device:chr_file rw_file_perms;
# Grant access to Qualcomm MSM Interface (QMI) audio sockets to mediaserver
allow mediaserver qmux_audio_socket:sock_file create_file_perms;
allow mediaserver qmux_audio_socket:dir rw_dir_perms;
# Permit mediaserver to create sockets
allow mediaserver self:socket create;
# Grant access to audio firmware files to mediaserver
allow mediaserver audio_firmware_file:dir ra_dir_perms;
allow mediaserver audio_firmware_file:file create_file_perms;

1
sepolicy/nfc.te Normal file
View File

@ -0,0 +1 @@
allow nfc bcm2079x_device:chr_file rw_file_perms;

5
sepolicy/rild.te Normal file
View File

@ -0,0 +1,5 @@
allow rild diag_device:chr_file rw_file_perms;
# Grant access to Qualcomm MSM Interface (QMI) radio sockets to RILD
allow rild qmux_radio_socket:sock_file create_file_perms;
allow rild qmux_radio_socket:dir rw_dir_perms;

View File

@ -0,0 +1,9 @@
# Grant GPU access to SurfaceFlinger
allow surfaceflinger gpu_device:chr_file rw_file_perms;
allow surfaceflinger sysfs:file rw_file_perms;
# Read from /data/local/tmp
allow surfaceflinger shell_data_file:dir search;
allow surfaceflinger shell_data_file:file { open getattr read };
allow surfaceflinger shell_data_file:lnk_file read;

10
sepolicy/system.te Normal file
View File

@ -0,0 +1,10 @@
# Grant GPU access to system apps (e.g., PowerManagerService)
allow system gpu_device:chr_file rw_file_perms;
allow system diag_device:chr_file rw_file_perms;
# Grant access to Qualcomm MSM Interface (QMI) radio sockets to system apps
# (e.g., LocationManager)
allow system qmux_radio_socket:sock_file create_file_perms;
allow system qmux_radio_socket:dir rw_dir_perms;
allow system wpa_socket:unix_dgram_socket sendto;

6
sepolicy/ueventd.te Normal file
View File

@ -0,0 +1,6 @@
allow ueventd sdcard_external:dir search;
allow ueventd sdcard_external:file r_file_perms;
allow ueventd wifi_data_file:dir search;
allow ueventd wifi_data_file:file r_file_perms;
allow ueventd firmware_file:dir r_dir_perms;
allow ueventd firmware_file:file r_file_perms;

2
sepolicy/wpa.te Normal file
View File

@ -0,0 +1,2 @@
allow wpa devpts:chr_file rw_file_perms;
allow wpa wpa_socket:unix_dgram_socket { read write };

1
sepolicy/wpa_socket.te Normal file
View File

@ -0,0 +1 @@
allow wpa_socket system:unix_dgram_socket sendto;