apk添加编译选项
vendor/xxxx/public/package/apps/serialport/Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := serialport
#LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
LOCAL_MODULE_PATH := $(TARGET_OUT)/preinstall
LOCAL_SRC_FILES := serialport.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := .apk
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_TAGS := optional
CURRENT_SDK_VERSION := current
include $(BUILD_PREBUILT)
device/softwinner/a40-note/a40-note.mk
PRODUCT_PACKAGES += \
+serialport
串口权限添加
device/softwinner/a40-common/init.sun8iw11p1.rc
+# Uart device
+ chmod 0666 /dev/ttyS2
+ chmod 0666 /dev/ttyS3
+ chmod 0666 /dev/ttyS4
+
+ chown system system /dev/ttyS2
+ chown system system /dev/ttyS3
+ chown system system /dev/ttyS4
selinux权限添加
device/softwinner/a40-common/sepolicy/file_contexts
+/dev/ttyS2 u:object_r:ttyAMA_device:s0
+/dev/ttyS3 u:object_r:ttyAMA_device:s0
+/dev/ttyS4 u:object_r:ttyAMA_device:s0
device/softwinner/common/sepolicy/device.te
type ttyAMA_device,dev_type;
device/softwinner/common/sepolicy/file_contexts
+#/dev/ttyS2 u:object_r:gps_device:s0
device/softwinner/common/sepolicy/system_server.te
+allow system_server ttyAMA_device:chr_file rw_file_perms;
+allow system_server ttyAMA_device:chr_file {read write open ioctl};
system/core/rootdir/etc/public.libraries.android.txt
+libserial_port.so
生成/etc/public.libraries.txt
hardware/aw/添加
serialport程序文件夹为jni libserial_port.so