Initial commit
This commit is contained in:
commit
9ca601468d
13 changed files with 213 additions and 0 deletions
|
|
@ -0,0 +1,2 @@
|
|||
[Unit]
|
||||
After=lxc@android.service
|
||||
0
etc/udev/rules.d/50-firmware.rules
Normal file
0
etc/udev/rules.d/50-firmware.rules
Normal file
0
etc/udev/rules.d/60-persistent-v4l.rules
Normal file
0
etc/udev/rules.d/60-persistent-v4l.rules
Normal file
0
etc/udev/rules.d/90-alsa-restore.rules
Normal file
0
etc/udev/rules.d/90-alsa-restore.rules
Normal file
0
etc/udev/rules.d/90-alsa-ucm.rules
Normal file
0
etc/udev/rules.d/90-alsa-ucm.rules
Normal file
15
lib/systemd/system/adbd.service
Normal file
15
lib/systemd/system/adbd.service
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
[Unit]
|
||||
Description=adbd
|
||||
Wants=local-fs.target
|
||||
After=local-fs.target lxc@android.service systemd-udevd.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Restart=on-failure
|
||||
SuccessExitStatus=0 127
|
||||
ExecStartPre=/usr/lib/android-tools-adbd/pre-start
|
||||
ExecStart=/usr/bin/adbd
|
||||
ExecStopPost=/usr/bin/unlink /dev/socket/adbd
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
26
lib/udev/rules.d/65-android.rules
Normal file
26
lib/udev/rules.d/65-android.rules
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# logging devices
|
||||
ACTION=="add", KERNEL=="log_*", MODE="0666"
|
||||
ACTION=="add", KERNEL=="log_main", SYMLINK+="alog/main"
|
||||
ACTION=="add", KERNEL=="log_system", SYMLINK+="alog/system"
|
||||
ACTION=="add", KERNEL=="log_radio", SYMLINK+="alog/radio"
|
||||
ACTION=="add", KERNEL=="log_events", SYMLINK+="alog/events"
|
||||
|
||||
# system devices
|
||||
ACTION=="add", KERNEL=="binder", MODE="0666"
|
||||
|
||||
# graphics devices
|
||||
SUBSYSTEM=="graphics", KERNEL=="*", SYMLINK+="graphics/%k"
|
||||
|
||||
# input devices
|
||||
ACTION=="add", KERNEL=="event[0-9]*", GROUP="android_input", MODE="0660"
|
||||
|
||||
# misc devices
|
||||
ACTION=="add", KERNEL=="alarm", OWNER="system", GROUP="phablet", MODE="0660"
|
||||
ACTION=="add", KERNEL=="uhid", OWNER="system", GROUP="system", MODE="0660"
|
||||
ACTION=="add", KERNEL=="mtp_usb", OWNER="root", GROUP="plugdev", MODE="0660"
|
||||
|
||||
# memory
|
||||
ACTION=="add", KERNEL=="ashmem", OWNER="system", GROUP="system", MODE="0666"
|
||||
|
||||
# rfkill
|
||||
ACTION=="add", KERNEL=="rfkill", GROUP="android_input", MODE="0660"
|
||||
48
lib/udev/rules.d/70-hammerhead.rules
Normal file
48
lib/udev/rules.d/70-hammerhead.rules
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
IMPORT{program}="androidboot.hardware"
|
||||
|
||||
ENV{androidboot.hardware}!="hammerhead", GOTO="hammerhead_inc_end"
|
||||
|
||||
ACTION=="add", KERNEL=="genlock", OWNER="system", GROUP="system", MODE="0666"
|
||||
ACTION=="add", KERNEL=="kgsl", OWNER="system", GROUP="system", MODE="0666"
|
||||
ACTION=="add", KERNEL=="kgsl-3d0", OWNER="system", GROUP="system", MODE="0666"
|
||||
ACTION=="add", KERNEL=="ion", OWNER="system", GROUP="system", MODE="0666"
|
||||
ACTION=="add", KERNEL=="video*", OWNER="system", GROUP="video", MODE="0660"
|
||||
ACTION=="add", KERNEL=="media*", OWNER="system", GROUP="video", MODE="0660"
|
||||
ACTION=="add", KERNEL=="v4l-subdev*", OWNER="system", GROUP="video", MODE="0660"
|
||||
ACTION=="add", KERNEL=="rtc0", OWNER="system", GROUP="system", MODE="0660"
|
||||
ACTION=="add", KERNEL=="diag", OWNER="radio", GROUP="radio", MODE="0660"
|
||||
ACTION=="add", KERNEL=="mdm", OWNER="system", GROUP="radio", MODE="0660"
|
||||
ACTION=="add", KERNEL=="ttyUSB0", OWNER="system", GROUP="system", MODE="0660"
|
||||
ACTION=="add", KERNEL=="msm_acdb", OWNER="system", GROUP="audio", MODE="0660"
|
||||
ACTION=="add", KERNEL=="msm_rtac", OWNER="system", GROUP="audio", MODE="0660"
|
||||
ACTION=="add", KERNEL=="msm_rotator", OWNER="system", GROUP="system", MODE="0666"
|
||||
ACTION=="add", KERNEL=="smd0", OWNER="system", GROUP="system", MODE="0660"
|
||||
ACTION=="add", KERNEL=="smd4", OWNER="system", GROUP="system", MODE="0660"
|
||||
ACTION=="add", KERNEL=="smd5", OWNER="system", GROUP="system", MODE="0660"
|
||||
ACTION=="add", KERNEL=="smd6", OWNER="system", GROUP="system", MODE="0660"
|
||||
ACTION=="add", KERNEL=="smd7", OWNER="bluetooth", GROUP="bluetooth", MODE="0660"
|
||||
ACTION=="add", KERNEL=="smd_cxm_qmi", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="smdcntl0", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="smdcntl1", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="smdcntl2", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="smdcntl3", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="smdcntl4", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="smdcntl5", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="smdcntl6", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="smdcntl7", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="smuxctl32", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="rmnet_mux_ctrl", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="hsicctl0", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="hsicctl1", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="hsicctl2", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="hsicctl3", OWNER="radio", GROUP="radio", MODE="0640"
|
||||
ACTION=="add", KERNEL=="qseecom", OWNER="system", GROUP="video", MODE="0666"
|
||||
ACTION=="add", KERNEL=="video32", OWNER="system", GROUP="video", MODE="0664"
|
||||
ACTION=="add", KERNEL=="video33", OWNER="system", GROUP="video", MODE="0664"
|
||||
ACTION=="add", KERNEL=="bcm2079x", OWNER="nfc", GROUP="nfc", MODE="0660"
|
||||
ACTION=="add", KERNEL=="jpeg0", OWNER="system", GROUP="video", MODE="0660"
|
||||
ACTION=="add", KERNEL=="jpeg1", OWNER="system", GROUP="video", MODE="0660"
|
||||
ACTION=="add", KERNEL=="jpeg2", OWNER="system", GROUP="video", MODE="0660"
|
||||
ACTION=="add", KERNEL=="ttyHS99", OWNER="bluetooth", GROUP="bluetooth", MODE="0660"
|
||||
|
||||
LABEL="hammerhead_inc_end"
|
||||
3
lib/udev/rules.d/99-android.rules
Normal file
3
lib/udev/rules.d/99-android.rules
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# udisks2 hint for devices to be marked as system devices (consumed by ciborium)
|
||||
# mmcblk0 so far has always been system.
|
||||
ACTION=="add|change", KERNEL=="mmcblk0*", ENV{UDISKS_SYSTEM}="1"
|
||||
18
usr/lib/android-tools-adbd/pre-start
Normal file
18
usr/lib/android-tools-adbd/pre-start
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ -d /sys/class/android_usb ]; then
|
||||
if [ -d /sys/class/android_usb/android0/f_ffs ] && [ -n "$(cat /sys/class/android_usb/android0/f_ffs/aliases)" ]; then
|
||||
if ! $(mount|grep -q ^adb); then
|
||||
# some devices use the functionfs (i.e. manta)
|
||||
# we need to mount it to keep adb working
|
||||
mkdir -p /dev/usb-ffs/adb
|
||||
mount -t functionfs adb /dev/usb-ffs/adb || true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo 0 >/sys/class/android_usb/android0/enable
|
||||
echo -n 18d1 >/sys/class/android_usb/android0/idVendor
|
||||
echo -n D002 >/sys/class/android_usb/android0/idProduct
|
||||
echo -n adb >/sys/class/android_usb/android0/functions
|
||||
echo 1 >/sys/class/android_usb/android0/enable
|
||||
38
usr/lib/lxc-android/mount-android
Executable file
38
usr/lib/lxc-android/mount-android
Executable file
|
|
@ -0,0 +1,38 @@
|
|||
#!/bin/sh
|
||||
|
||||
INITRD=/system/boot/android-ramdisk.img
|
||||
rm -Rf /tmp/android/
|
||||
mkdir -p /tmp/android/
|
||||
cd /tmp/android/
|
||||
cat $INITRD | gzip -d | cpio -i
|
||||
|
||||
fstab=/tmp/android/fstab*
|
||||
|
||||
cat ${fstab} | while read line; do
|
||||
set -- $line
|
||||
# Skip any unwanted entry
|
||||
echo $1 | egrep -q "^#" && continue
|
||||
([ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ]) && continue
|
||||
([ "$3" = "emmc" ] || [ "$3" = "swap" ] || [ "$3" = "mtd" ]) && continue
|
||||
[ ! -d "$2" ] && continue
|
||||
|
||||
([ "$2" = "/system" ] || [ "$2" = "/data" ]) && continue
|
||||
|
||||
label=$(echo $1 | awk -F/ '{print $NF}')
|
||||
[ -z "$label" ] && continue
|
||||
|
||||
# In case fstab provides /dev/mmcblk0p* lines
|
||||
path="/dev/$label"
|
||||
for dir in by-partlabel by-name by-label by-path by-uuid by-partuuid by-id; do
|
||||
if [ -e "/dev/disk/$dir/$label" ]; then
|
||||
path="/dev/disk/$dir/$label"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
[ ! -e "$path" ] && continue
|
||||
|
||||
mkdir -p $2
|
||||
mount $path $2 -t $3 -o $4
|
||||
|
||||
done
|
||||
18
var/lib/lxc/android/config
Normal file
18
var/lib/lxc/android/config
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
lxc.rootfs = /var/lib/lxc/android/rootfs
|
||||
lxc.utsname = armhf
|
||||
|
||||
lxc.network.type = none
|
||||
|
||||
lxc.devttydir = lxc
|
||||
lxc.tty = 4
|
||||
lxc.pts = 1024
|
||||
lxc.arch = armhf
|
||||
lxc.cap.drop = mac_admin mac_override
|
||||
lxc.pivotdir = lxc_putold
|
||||
|
||||
lxc.hook.pre-start = /var/lib/lxc/android/pre-start.sh
|
||||
|
||||
lxc.init_cmd = /init
|
||||
|
||||
lxc.aa_profile = unconfined
|
||||
lxc.autodev = 0
|
||||
45
var/lib/lxc/android/pre-start.sh
Executable file
45
var/lib/lxc/android/pre-start.sh
Executable file
|
|
@ -0,0 +1,45 @@
|
|||
#!/bin/sh
|
||||
|
||||
mount_android_partitions() {
|
||||
fstab=$1
|
||||
lxc_rootfs_path=$2
|
||||
cat ${fstab} | while read line; do
|
||||
set -- $line
|
||||
# Skip any unwanted entry
|
||||
echo $1 | egrep -q "^#" && continue
|
||||
([ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ]) && continue
|
||||
([ "$3" = "emmc" ] || [ "$3" = "swap" ] || [ "$3" = "mtd" ]) && continue
|
||||
[ ! -d "$2" ] && continue
|
||||
|
||||
mkdir -p ${lxc_rootfs_path}/$2
|
||||
mount -n -o bind,recurse $2 ${lxc_rootfs_path}/$2
|
||||
done
|
||||
}
|
||||
|
||||
INITRD=/system/boot/android-ramdisk.img
|
||||
rm -Rf $LXC_ROOTFS_PATH
|
||||
mkdir -p $LXC_ROOTFS_PATH
|
||||
cd $LXC_ROOTFS_PATH
|
||||
cat $INITRD | gzip -d | cpio -i
|
||||
|
||||
mknod -m 666 $LXC_ROOTFS_PATH/dev/null c 1 3
|
||||
|
||||
# Create /dev/pts if missing
|
||||
mkdir -p $LXC_ROOTFS_PATH/dev/pts
|
||||
|
||||
# Pass /sockets through
|
||||
mkdir -p /dev/socket $LXC_ROOTFS_PATH/socket
|
||||
mount -n -o bind,rw /dev/socket $LXC_ROOTFS_PATH/socket
|
||||
|
||||
rm $LXC_ROOTFS_PATH/sbin/adbd
|
||||
|
||||
# Mount the android partitions
|
||||
mount_android_partitions $LXC_ROOTFS_PATH/fstab* "$LXC_ROOTFS_PATH"
|
||||
|
||||
sed -i '/on early-init/a \ mkdir /dev/socket\n\ mount none /socket /dev/socket bind' $LXC_ROOTFS_PATH/init.rc
|
||||
|
||||
sed -i "/mount_all /d" $LXC_ROOTFS_PATH/init.*.rc
|
||||
sed -i "/on nonencrypted/d" $LXC_ROOTFS_PATH/init.rc
|
||||
|
||||
rm -Rf $LXC_ROOTFS_PATH/vendor
|
||||
ln -s /system/vendor $LXC_ROOTFS_PATH/vendor
|
||||
Loading…
Add table
Reference in a new issue