Initial commit

This commit is contained in:
Bhushan Shah 2017-05-30 17:08:56 +05:30
commit 9ca601468d
13 changed files with 213 additions and 0 deletions

View file

@ -0,0 +1,2 @@
[Unit]
After=lxc@android.service

View file

View file

View file

View file

View 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

View 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"

View 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"

View 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"

View 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

View 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

View 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

View 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