commit 78bae1c62d152bc8d34bb97bc38ad8ed602699e7 Author: Aeris Date: Wed Nov 28 06:07:20 2018 +0100 First Batch diff --git a/EFS_Professional_2.1.80_BETA.zip b/EFS_Professional_2.1.80_BETA.zip new file mode 100644 index 0000000..6f31e10 Binary files /dev/null and b/EFS_Professional_2.1.80_BETA.zip differ diff --git a/QPST_2.7.460.zip b/QPST_2.7.460.zip new file mode 100644 index 0000000..e2a16f2 Binary files /dev/null and b/QPST_2.7.460.zip differ diff --git a/QPST_2.7.474.zip b/QPST_2.7.474.zip new file mode 100644 index 0000000..c41b840 Binary files /dev/null and b/QPST_2.7.474.zip differ diff --git a/QpstUserGuide.pdf b/QpstUserGuide.pdf new file mode 100644 index 0000000..663781b Binary files /dev/null and b/QpstUserGuide.pdf differ diff --git a/Qualcomm_Drivers_QDLoader.zip b/Qualcomm_Drivers_QDLoader.zip new file mode 100644 index 0000000..9ffac5a Binary files /dev/null and b/Qualcomm_Drivers_QDLoader.zip differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..770f9bd --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# Steps to unpack kernel image + + 1. Download Image + 2. Unpack zip + 3. Unpack tar.md5 (rename to tar) + 4. binwalk -e on boot.img diff --git a/SAMSUNG_USB_Driver_for_Mobile_Phones.zip b/SAMSUNG_USB_Driver_for_Mobile_Phones.zip new file mode 100644 index 0000000..74ac0ce Binary files /dev/null and b/SAMSUNG_USB_Driver_for_Mobile_Phones.zip differ diff --git a/kernel_image/default.prop b/kernel_image/default.prop new file mode 100644 index 0000000..0e52632 --- /dev/null +++ b/kernel_image/default.prop @@ -0,0 +1,9 @@ +# +# ADDITIONAL_DEFAULT_PROPERTIES +# +persist.security.ams.enforcing=1 +ro.secure=1 +ro.allow.mock.location=0 +ro.debuggable=0 +ro.adb.secure=1 +persist.sys.usb.config=mtp diff --git a/kernel_image/file_contexts b/kernel_image/file_contexts new file mode 100644 index 0000000..123b508 --- /dev/null +++ b/kernel_image/file_contexts @@ -0,0 +1,583 @@ +#line 1 "vendor/samsung/common/sepolicy/nsa/file_contexts" +########################################### +# Root +/ u:object_r:rootfs:s0 + +# Data files +/adb_keys u:object_r:adb_keys_file:s0 +/default.prop u:object_r:rootfs:s0 +/fstab\..* u:object_r:rootfs:s0 +/init\..* u:object_r:rootfs:s0 +/res(/.*)? u:object_r:rootfs:s0 +/ueventd\..* u:object_r:rootfs:s0 + +# Executables +/charger u:object_r:rootfs:s0 +/init u:object_r:rootfs:s0 +/sbin(/.*)? u:object_r:rootfs:s0 + +# Empty directories +/lost\+found u:object_r:rootfs:s0 +/proc u:object_r:rootfs:s0 + +# SELinux policy files +/file_contexts u:object_r:rootfs:s0 +/property_contexts u:object_r:rootfs:s0 +/seapp_contexts u:object_r:rootfs:s0 +/sepolicy u:object_r:rootfs:s0 + +########################## +# Devices +# +/dev(/.*)? u:object_r:device:s0 +/dev/accelerometer u:object_r:sensors_device:s0 +/dev/alarm u:object_r:alarm_device:s0 +/dev/android_adb.* u:object_r:adb_device:s0 +/dev/ashmem u:object_r:ashmem_device:s0 +/dev/audio.* u:object_r:audio_device:s0 +/dev/binder u:object_r:binder_device:s0 +/dev/block(/.*)? u:object_r:block_device:s0 +/dev/block/loop[0-9]* u:object_r:loop_device:s0 +/dev/block/ram[0-9]* u:object_r:ram_device:s0 +/dev/bus/usb(.*)? u:object_r:usb_device:s0 +/dev/cam u:object_r:camera_device:s0 +/dev/console u:object_r:console_device:s0 +/dev/cpuctl(/.*)? u:object_r:cpuctl_device:s0 +/dev/device-mapper u:object_r:dm_device:s0 +/dev/eac u:object_r:audio_device:s0 +/dev/fscklogs(/.*)? u:object_r:fscklogs:s0 +/dev/full u:object_r:full_device:s0 +/dev/fuse u:object_r:fuse_device:s0 +/dev/graphics(/.*)? u:object_r:graphics_device:s0 +/dev/hw_random u:object_r:hw_random_device:s0 +/dev/input(/.*) u:object_r:input_device:s0 +/dev/iio:device[0-9]+ u:object_r:iio_device:s0 +/dev/ion u:object_r:ion_device:s0 +/dev/kmem u:object_r:kmem_device:s0 +/dev/log(/.*)? u:object_r:log_device:s0 +/dev/mem u:object_r:kmem_device:s0 +/dev/modem.* u:object_r:radio_device:s0 +/dev/mpu u:object_r:gps_device:s0 +/dev/mpuirq u:object_r:gps_device:s0 +/dev/mtd(/.*)? u:object_r:mtd_device:s0 +/dev/mtp_usb u:object_r:mtp_device:s0 +/dev/pn544 u:object_r:nfc_device:s0 +/dev/ppp u:object_r:ppp_device:s0 +/dev/ptmx u:object_r:ptmx_device:s0 +/dev/qemu_.* u:object_r:qemu_device:s0 +/dev/kmsg u:object_r:kmsg_device:s0 +/dev/null u:object_r:null_device:s0 +/dev/nvmap u:object_r:nv_device:s0 +/dev/nvhost-.* u:object_r:nv_device:s0 +/dev/random u:object_r:random_device:s0 +/dev/rpmsg-omx[0-9] u:object_r:rpmsg_device:s0 +/dev/rproc_user u:object_r:rpmsg_device:s0 +/dev/snd(/.*)? u:object_r:audio_device:s0 +/dev/snd/pcmC[0-9]*D[0-9]*c u:object_r:audio_capture_device:s0 +/dev/socket(/.*)? u:object_r:socket_device:s0 +/dev/socket/adbd u:object_r:adbd_socket:s0 +/dev/socket/bluetooth u:object_r:bluetooth_socket:s0 +/dev/socket/dnsproxyd u:object_r:dnsproxyd_socket:s0 +/dev/socket/gps u:object_r:gps_socket:s0 +/dev/socket/installd u:object_r:installd_socket:s0 +/dev/socket/keystore u:object_r:keystore_socket:s0 +/dev/socket/mdns u:object_r:mdns_socket:s0 +/dev/socket/netd u:object_r:netd_socket:s0 +/dev/socket/property_service u:object_r:property_socket:s0 +/dev/socket/qemud u:object_r:qemud_socket:s0 +/dev/socket/racoon u:object_r:racoon_socket:s0 +/dev/socket/rild u:object_r:rild_socket:s0 +/dev/socket/rild-debug u:object_r:rild_debug_socket:s0 +/dev/socket/vold u:object_r:vold_socket:s0 +/dev/socket/wpa_eth[0-9] u:object_r:wpa_socket:s0 +/dev/socket/wpa_wlan[0-9] u:object_r:wpa_socket:s0 +/dev/socket/zygote u:object_r:zygote_socket:s0 +/dev/spdif_out.* u:object_r:audio_device:s0 +/dev/tegra.* u:object_r:video_device:s0 +/dev/tf_driver u:object_r:tee_device:s0 +/dev/tty u:object_r:owntty_device:s0 +/dev/tty[0-9]* u:object_r:tty_device:s0 +/dev/ttyS[0-9]* u:object_r:serial_device:s0 +/dev/tun u:object_r:tun_device:s0 +/dev/uhid u:object_r:uhid_device:s0 +/dev/uinput u:object_r:uhid_device:s0 +/dev/urandom u:object_r:urandom_device:s0 +/dev/usb_accessory u:object_r:usbaccessory_device:s0 +/dev/vcs[0-9a-z]* u:object_r:vcs_device:s0 +/dev/video[0-9]* u:object_r:video_device:s0 +/dev/video4[0-9] u:object_r:camera_device:s0 +/dev/watchdog u:object_r:watchdog_device:s0 +/dev/xt_qtaguid u:object_r:qtaguid_device:s0 +/dev/zero u:object_r:zero_device:s0 +/dev/__kmsg__ u:object_r:klog_device:s0 +/dev/__properties__ u:object_r:properties_device:s0 +############################# +# System files +# +/system(/.*)? u:object_r:system_file:s0 +/system/bin/auditd u:object_r:auditd_exec:s0 +/system/bin/mksh u:object_r:shell_exec:s0 +/system/bin/sh -- u:object_r:shell_exec:s0 +/system/bin/run-as -- u:object_r:runas_exec:s0 +/system/bin/app_process u:object_r:zygote_exec:s0 +/system/bin/servicemanager u:object_r:servicemanager_exec:s0 +/system/bin/surfaceflinger u:object_r:surfaceflinger_exec:s0 +/system/bin/drmserver u:object_r:drmserver_exec:s0 +/system/bin/vold u:object_r:vold_exec:s0 +/system/bin/netd u:object_r:netd_exec:s0 +/system/bin/rild u:object_r:rild_exec:s0 +/system/bin/mediaserver u:object_r:mediaserver_exec:s0 +/system/bin/installd u:object_r:installd_exec:s0 +/system/bin/keystore u:object_r:keystore_exec:s0 +/system/bin/debuggerd u:object_r:debuggerd_exec:s0 +/system/bin/wpa_supplicant u:object_r:wpa_exec:s0 +/system/bin/qemud u:object_r:qemud_exec:s0 +/system/bin/sdcard u:object_r:sdcardd_exec:s0 +/system/bin/dhcpcd u:object_r:dhcp_exec:s0 +/system/bin/mtpd u:object_r:mtp_exec:s0 +/system/bin/pppd u:object_r:ppp_exec:s0 +/system/bin/tf_daemon u:object_r:tee_exec:s0 +/system/bin/racoon u:object_r:racoon_exec:s0 +/system/etc/ppp(/.*)? u:object_r:ppp_system_file:s0 +/system/etc/dhcpcd(/.*)? u:object_r:dhcp_system_file:s0 +/system/xbin/su u:object_r:su_exec:s0 +/system/vendor/bin/gpsd u:object_r:gpsd_exec:s0 +/system/bin/ping u:object_r:ping_exec:s0 +/system/bin/dnsmasq u:object_r:dnsmasq_exec:s0 +/system/bin/hostapd u:object_r:hostapd_exec:s0 +/system/bin/clatd u:object_r:clatd_exec:s0 +############################# +# Vendor files +# +/vendor(/.*)? u:object_r:system_file:s0 +/vendor/bin/gpsd u:object_r:gpsd_exec:s0 +############################# +# Data files +# +/data(/.*)? u:object_r:system_data_file:s0 +/data/backup(/.*)? u:object_r:backup_data_file:s0 +/data/secure/backup(/.*)? u:object_r:backup_data_file:s0 +/data/security(/.*)? u:object_r:security_file:s0 +/data/drm(/.*)? u:object_r:drm_data_file:s0 +/data/gps(/.*)? u:object_r:gps_data_file:s0 +/data/dalvik-cache(/.*)? u:object_r:dalvikcache_data_file:s0 +/data/anr(/.*)? u:object_r:anr_data_file:s0 +/data/app(/.*)? u:object_r:apk_data_file:s0 +/data/app/vmdl.*\.tmp u:object_r:apk_tmp_file:s0 +/data/app-private(/.*)? u:object_r:apk_private_data_file:s0 +/data/app-private/vmdl.*\.tmp u:object_r:apk_private_tmp_file:s0 +/data/tombstones(/.*)? u:object_r:tombstone_data_file:s0 +/data/local/tmp(/.*)? u:object_r:shell_data_file:s0 +# Misc data +/data/misc/audio(/.*)? u:object_r:audio_data_file:s0 +/data/misc/audit(/.*)? u:object_r:audit_log:s0 +/data/misc/bluetooth(/.*)? u:object_r:bluetooth_data_file:s0 +/data/misc/bluedroid(/.*)? u:object_r:bluetooth_data_file:s0 +/data/misc/keystore(/.*)? u:object_r:keystore_data_file:s0 +/data/misc/media(/.*)? u:object_r:media_data_file:s0 +/data/misc/vpn(/.*)? u:object_r:vpn_data_file:s0 +/data/misc/systemkeys(/.*)? u:object_r:systemkeys_data_file:s0 +/data/misc/wifi(/.*)? u:object_r:wifi_data_file:s0 +/data/misc/camera(/.*)? u:object_r:camera_data_file:s0 +/data/misc/dhcp(/.*)? u:object_r:dhcp_data_file:s0 +/data/misc/adb(/.*)? u:object_r:adb_keys_file:s0 +# App sandboxes +/data/data/.* u:object_r:app_data_file:s0 +# Wallpaper file. +/data/data/com.android.settings/files/wallpaper u:object_r:wallpaper_file:s0 +# Wallpaper file for other users +/data/system/users/[0-9]+/wallpaper u:object_r:wallpaper_file:s0 +# Downloaded files +/data/data/com.android.providers.downloads/cache u:object_r:download_file:s0 +############################# +# efs files +# +/efs(/.*)? u:object_r:efs_file:s0 +############################# +# Cache files +# +/cache(/.*)? u:object_r:cache_file:s0 +/cache/.*\.data u:object_r:cache_backup_file:s0 +/cache/.*\.restore u:object_r:cache_backup_file:s0 +# LocalTransport (backup) uses this directory +/cache/backup(/.*)? u:object_r:cache_backup_file:s0 +############################# +# sysfs files +# +/sys/qemu_trace(/.*)? -- u:object_r:sysfs_writable:s0 +/sys/devices/platform/nfc-power/nfc_power -- u:object_r:sysfs_nfc_power_writable:s0 +/sys/class/rfkill/rfkill[0-9]*/state -- u:object_r:sysfs_bluetooth_writable:s0 +/sys/class/rfkill/rfkill[0-9]*/type -- u:object_r:sysfs_bluetooth_writable:s0 +/sys/devices/system/cpu(/.*)? u:object_r:sysfs_devices_system_cpu:s0 +/sys/power/wake_lock -- u:object_r:sysfs_wake_lock:s0 +/sys/power/wake_unlock -- u:object_r:sysfs_wake_lock:s0 +############################# +# asec containers +/mnt/asec(/.*)? u:object_r:asec_apk_file:s0 +/data/app-asec(/.*)? u:object_r:asec_image_file:s0 +#line 1 "vendor/samsung/common/sepolicy/file_contexts" +############################# +# Carrier file +# carrier folder for Sprint(Qualcomm and SLSI) +/carrier(/.*)? u:object_r:carrier_file:s0 + +############################# +# Device node +# +/dev/android_ssusbcon(/.*)? u:object_r:usb_device:s0 +/dev/.secure_storage(/.*)? u:object_r:secure_storage_device:s0 +/dev/__kmsg u:object_r:klog_device:s0 +#remove it because of conflict with NSA +#/dev/__properties__ u:object_r:prop_device:s0 +/dev/batch_io u:object_r:io_device:s0 +/dev/bcm2079x u:object_r:nfc_device:s0 +/dev/block/platform/dw_mmc.* u:object_r:dw_mmc_device:s0 +/dev/block/platform/msm_sdcc.1/by-name/param u:object_r:emmcblk_device:s0 +/dev/block/vnswap0 u:object_r:swap_device:s0 +/dev/bus/usb(/.*)? u:object_r:usb_bus:s0 +/dev/diag u:object_r:diag_device:s0 +/dev/dumpstate u:object_r:dumpstate_device:s0 +/dev/i2c.* u:object_r:i2c_device:s0 + +## Knox Sensitive data protection, DEK engine driver access +/dev/dek_evt u:object_r:knox_dar_device:s0 +/dev/dek_kek u:object_r:knox_dar_device:s0 +/dev/dek_log u:object_r:knox_dar_device:s0 +/dev/dek_req u:object_r:knox_dar_device:s0 +/dev/sdp_mm u:object_r:knox_dar_device:s0 + +/dev/media[0-3]* u:object_r:camera_device:s0 +/dev/mobicore u:object_r:mobicore_device:s0 +/dev/mobicore-user u:object_r:mobicore-user_device:s0 +/dev/pipes(/.*)? u:object_r:system_fifo:s0 +/dev/pn547 u:object_r:nfc_device:s0 +#fix build error - duplicate definition +#/dev/pn544 u:object_r:nfc_device:s0 +/dev/pvrsrvkm u:object_r:powervr_device:s0 +/dev/sec-nfc u:object_r:nfc_device:s0 +/dev/shtc1_sensor u:object_r:sensor_device:s0 +/dev/socket/charon u:object_r:charon_socket:s0 +/dev/socket/dumpstate u:object_r:dumpstate_socket:s0 +/dev/socket/cs_socket u:object_r:cs_socket:s0 +/dev/socket/msockets(/.*)? u:object_r:msockets_socket:s0 +/dev/socket/mtpd u:object_r:mtpd_socket:s0 +/dev/socket/dir_enc_report u:object_r:vold_socket:s0 +/dev/socket/drsd u:object_r:drsd_socket:s0 +/dev/socket/epm u:object_r:epm_socket:s0 +/dev/socket/ppm u:object_r:epm_socket:s0 +/dev/socket/rild[0-9]* u:object_r:rild_socket:s0 +/dev/socket/rild-debug[0-9]* u:object_r:rild_debug_socket:s0 +/dev/ssp_sensorhub u:object_r:input_device:s0 +/dev/timerirq u:object_r:timerirq_device:s0 +/dev/ttyGS[0-9]* u:object_r:usb_serial_device:s0 +/dev/ttyUSB[0-9]* u:object_r:usb_device:s0 +/dev/tzic u:object_r:tzic_device:s0 +/dev/usb(/.*)? u:object_r:usb_device:s0 +/dev/usb.* u:object_r:usb_device:s0 +/dev/usb/tty.* u:object_r:usb_device:s0 +/dev/usb_mtp_gadget.* u:object_r:mtp_device:s0 +/dev/validity(/.*)? u:object_r:validity_device:s0 +/dev/vfsspi u:object_r:vfsspi_device:s0 +/dev/block/mmcblk0p[0-9]* u:object_r:emmcblk_device:s0 +/dev/block/mmcblk[0-9]* u:object_r:emmcblk_device:s0 +/dev/block/mmcblk1p.* u:object_r:emmcblk_device:s0 +/dev/block/mmcblk1p1 u:object_r:emmcblk_device:s0 + +#################################### +# sysfs files +# +/sys(/.*)? u:object_r:sysfs:s0 +/sys/class/power_supply/battery/music -- u:object_r:sysfs_music_power_writable:s0 +/sys/class/devfreq/exynos5-busfreq-mif(/.*)? -- u:object_r:sysfs_exynos_writable:s0 +/sys/class/lcd(/.*)? -- u:object_r:sysfs_lcd_writable:s0 + +############################# +# System files +# +/system/bin/actlmand u:object_r:actlmand_exec:s0 +/system/bin/androidshmservice u:object_r:androidshmservice_exec:s0 +/system/bin/apaservice u:object_r:apaservice_exec:s0 +/system/bin/at_distributor u:object_r:at_distributor_exec:s0 +/system/bin/bintvoutservice u:object_r:bintvoutservice_exec:s0 +/system/bin/bootanimation u:object_r:bootanimation_exec:s0 +/system/bin/bootchecker u:object_r:bootchecker_exec:s0 +/system/bin/bugreport u:object_r:bugreport_exec:s0 +/system/bin/cellgeofenced u:object_r:cellgeofenced_exec:s0 +/system/bin/charon u:object_r:charon_exec:s0 +/system/bin/connfwexe u:object_r:connfwexe_exec:s0 +/system/bin/createsystemfile u:object_r:createsystemfile_exec:s0 +/system/bin/cs u:object_r:cs_exec:s0 +/system/bin/ddexe u:object_r:ddexe_exec:s0 +/system/bin/diag_uart_log u:object_r:diag_uart_log_exec:s0 +/system/bin/drsd u:object_r:drsd_exec:s0 +/system/bin/dttexe u:object_r:dttexe_exec:s0 +/system/bin/dumpstate u:object_r:dumpstate_exec:s0 +/system/bin/dumpsys u:object_r:dumpsys_exec:s0 +/system/bin/edmaudit u:object_r:edmaudit_exec:s0 +/system/bin/epmd u:object_r:epmd_exec:s0 +/system/bin/gpu_snapshotd u:object_r:gpu_snapshotd_exec:s0 +/system/bin/gsiff_daemon u:object_r:gsiff_daemon_exec:s0 +/system/bin/icd u:object_r:icd_exec:s0 +/system/bin/immvibed u:object_r:immvibed_exec:s0 +/system/bin/imsqmidaemon u:object_r:imsqmidaemon_exec:s0 +/system/bin/insthk u:object_r:insthk_exec:s0 +/system/bin/ipruleset u:object_r:ipruleset_exec:s0 +/system/bin/IPSecService u:object_r:IPSecService_exec:s0 +/system/bin/jackservice u:object_r:jackservice_exec:s0 +/system/bin/kiesexe u:object_r:kiesexe_exec:s0 +/system/bin/logwrapper u:object_r:logwrapper_exec:s0 +/system/bin/mdnsd u:object_r:mdnsd_exec:s0 +/system/bin/mdm_helper u:object_r:mdm_helper_exec:s0 +/system/bin/mdm_helper_proxy u:object_r:mdm_helper_proxy_exec:s0 +/system/bin/netmgrd u:object_r:netmgrd_exec:s0 +/system/bin/npsmobex u:object_r:mobexdaemon_exec:s0 +/system/bin/nqs u:object_r:nqs_exec:s0 +/system/bin/p2p_supplicant u:object_r:p2p_supplicant_exec:s0 +/system/bin/ptt_socket_app u:object_r:ptt_socket_app_exec:s0 +/system/bin/prepare_param.sh u:object_r:prepare_param_sh_file:s0 +/system/bin/rfs_access u:object_r:rfs_access_exec:s0 +/system/bin/samsungpowersoundplay u:object_r:samsungpowersoundplay_exec:s0 +/system/bin/sec-ril u:object_r:sec-ril_exec:s0 +/system/bin/secure_storage_daemon u:object_r:secure_storage_exec:s0 +/system/bin/sensorhubservice u:object_r:sensorhubservice_exec:s0 +/system/bin/selinux-network.sh u:object_r:selinux_net_exec:s0 +/system/bin/ss_conn_daemon u:object_r:ss_conn_daemon_exec:s0 +/system/bin/sshd u:object_r:sshd_exec:s0 +/system/bin/sysmon u:object_r:sysmon_exec:s0 +/system/bin/tima_dump_log u:object_r:tima_dump_exec:s0 +/system/bin/vcsFPService u:object_r:vcsFPService_exec:s0 +/system/bin/vfmService u:object_r:vcsFPService_exec:s0 +/system/bin/wcnss_service u:object_r:wcnss_service_exec:s0 +/system/bin/wpa_supplicant_real u:object_r:wpa_exec:s0 +/system/bin/sysprof u:object_r:sysprof_exec:s0 +/system/etc/install-recovery.sh u:object_r:flash_recovery_sh_file:s0 + +/system/lib(/.*)? u:object_r:system_library_file:s0 +/system/etc/event-log-tags u:object_r:event_log_tags_file:s0 + + +############################# +# EFS file +# +/efs/bluetooth(/.*)? u:object_r:bluetooth_efs_file:s0 +/efs/imei(/.*)? u:object_r:imei_efs_file:s0 +/efs/FactoryApp(/.*)? u:object_r:app_efs_file:s0 +/efs/wifi(/.*)? u:object_r:wifi_efs_file:s0 + + +############################# +# DATA file +# +/data/data/.drm(/.*)? u:object_r:drm_data_file:s0 +/data/data/imsqmisocket u:object_r:system_data_file:s0 +/data/app-lib(/.*)? u:object_r:app_library_file:s0 +/data/bcmnfc(/.*)? u:object_r:nfc_data_file:s0 +/data/log(/.*)? u:object_r:dumplog_data_file:s0 +/data/media(/.*)? u:object_r:media_data_file:s0 +/data/media.tmp(/.*)? u:object_r:media_data_file:s0 +/data/media/obb(/.*)? u:object_r:obb_apk_file:s0 +#fix build error - duplicate definition +#/data/misc/audio(/.*)? u:object_r:audio_data_file:s0 +/data/misc/radio(/.*)? u:object_r:radio_data_file:s0 +/data/system/users(/.*)/wallpaper u:object_r:wallpaper_file:s0 +/data/.container_[1-9](/.*)? u:object_r:container_app_data_backend:s0 +/data/container(/.*)? u:object_r:container_app_data_backend:s0 +/data/clipboard/knox(/.*)? u:object_r:knox_clipboard_file:s0 +/data/clipboard1[0-9][0-9](/.*)? u:object_r:knox_clipboard_file:s0 +/data/knox(/.*)? u:object_r:container_app_data_backend:s0 +/data/system/container(/.*)? u:object_r:security_file:s0 +/data/sc(/.*)? u:object_r:smartcard_data_file:s0 +# personalpage path is not used by (hyojin45.son) +# /data/personalpage(/.*)? u:object_r:personal_page_file:s0 +# new path for personalpage is privatemode.K is first model for personalpage. +/data/privatemode(/.*)? u:object_r:personal_page_file:s0 +/data/KEqvTaYEYkuJr1Mn+t-SwFvbgYo_(/.*)? u:object_r:tima_keystore_file:s0 +/data/misc/tima(/.*)? u:object_r:tima_log:s0 +/data/data/com.android.shell(/.*)? u:object_r:shell_data_file:s0 + +############################# +# MISC partition file +# +/hidden(/.*)? u:object_r:hidden_file:s0 +/persdata(/.*)? u:object_r:persdata_data_file:s0 +/persist(/.*)? u:object_r:persist_data_file:s0 +/preload(/.*)? u:object_r:hidden_file:s0 +/tombstone(/.*)? u:object_r:tombstone_data_file:s0 +/tombstones(/.*)? u:object_r:tombstones_data_file:s0 + +############################# +# MNT +# +/mnt/obb(/.*)? u:object_r:obb_apk_file:s0 +/mnt/secure/asec(/.*)? u:object_r:asec_apk_file:s0 +/mnt/secure/staging(/.*)? u:object_r:asec_image_file:s0 + +#line 1 "vendor/samsung/common/sepolicy/qcom_common/file_contexts" +############################# +# Device node +# +/dev/adsprpc-smd u:object_r:adsprpc_device:s0 +/dev/android_mbim u:object_r:android_mbim:s0 +/dev/android_rndis_qc u:object_r:radio_device:s0 +/dev/audience_a2220 u:object_r:audio_device:s0 +/dev/block/mmcblk0rpmb u:object_r:mmcblk0rpmb_device:s0 +/dev/block/platform/msm_sdcc.1/by-name/fsg u:object_r:fsg_device:s0 +/dev/block/platform/msm_sdcc.1/by-name/m9kefs[0-3]* u:object_r:emmcblk_device:s0 +/dev/block/platform/msm_sdcc.1/by-name/modem u:object_r:modem_device:s0 +/dev/block/platform/msm_sdcc.1/by-name/modemst[1-2]* u:object_r:emmcblk_device:s0 +/dev/block/platform/msm_sdcc.1/by-name/ssd u:object_r:emmcblk_device:s0 +/dev/btlock u:object_r:hci_attach_dev:s0 +#ciq_bridge PLM +/dev/ciq_bridge u:object_r:ciqbridge_device:s0 +/dev/cpu_dma_latency u:object_r:cpu_dma_latency_device:s0 +/dev/dun u:object_r:dun_device:s0 +/dev/efs_bridge u:object_r:radio_device:s0 +/dev/efs_hsic_bridge u:object_r:radio_device:s0 +/dev/gemini0 u:object_r:camera_device:s0 +/dev/genlock u:object_r:genlock:s0 +/dev/gsm_ipc0 u:object_r:radio_device:s0 +/dev/gsm_boot0 u:object_r:radio_device:s0 +/dev/gsm_multi_pdp u:object_r:radio_device:s0 +/dev/gsm_rfs0 u:object_r:radio_device:s0 +/dev/hsicctl[0-3]* u:object_r:qmuxd_device:s0 +#fix build error - duplicate definition +#/dev/hw_random u:object_r:hw_random_device:s0 +/dev/kgsl-[0-9a-z]* u:object_r:kgsl_device:s0 +/dev/ks_bridge u:object_r:radio_device:s0 +/dev/ks_hsic_bridge u:object_r:radio_device:s0 +/dev/mdm u:object_r:radio_device:s0 +/dev/mhl_dev u:object_r:mhl_device:s0 +/dev/msm_aac u:object_r:audio_device:s0 +/dev/msm_aac_in u:object_r:audio_device:s0 +/dev/msm_acdb u:object_r:audio_device:s0 +/dev/msm_amrnb u:object_r:audio_device:s0 +/dev/msm_amrnb_in u:object_r:audio_device:s0 +/dev/msm_amrwb u:object_r:audio_device:s0 +/dev/msm_amrwb_in u:object_r:audio_device:s0 +/dev/msm_amrwbplus u:object_r:audio_device:s0 +/dev/msm_camera(/.*)? u:object_r:camera_device:s0 +/dev/msm_dsps u:object_r:input_device:s0 +/dev/msm_evrc u:object_r:audio_device:s0 +/dev/msm_evrc_in u:object_r:audio_device:s0 +/dev/msm_mp3 u:object_r:audio_device:s0 +/dev/msm_multi_aac u:object_r:audio_device:s0 +/dev/msm_qcelp u:object_r:audio_device:s0 +/dev/msm_qcelp_in u:object_r:audio_device:s0 +/dev/msm_rotator u:object_r:graphics_device:s0 +/dev/msm_rtac u:object_r:audio_device:s0 +/dev/msm_sps u:object_r:input_device:s0 +/dev/msm_vidc_.* u:object_r:audio_device:s0 +/dev/msm_wma u:object_r:audio_device:s0 +/dev/msm_wmapro u:object_r:audio_device:s0 +/dev/msm_wma_pro u:object_r:audio_device:s0 +/dev/network_latency u:object_r:radio_device:s0 +/dev/network_throughput u:object_r:radio_device:s0 +/dev/nmea u:object_r:radio_device:s0 +/dev/pmem_audio u:object_r:audio_device:s0 +/dev/qmi[0-9]* u:object_r:radio_device:s0 +/dev/qseecom u:object_r:qseecom_device:s0 +/dev/ramdump_dsps u:object_r:ramdump_device:s0 +/dev/ramdump_riva u:object_r:ramdump_device:s0 +/dev/ramdump_smem-dsps u:object_r:ramdump_device:s0 +/dev/rfkill u:object_r:rfkill_device:s0 +/dev/rmnet_mux_ctrl u:object_r:radio_device:s0 +/dev/rtc[0-9]* u:object_r:clock_device:s0 +/dev/smd[0-9]* u:object_r:smd_device:s0 +/dev/smd_cxm_qmi u:object_r:smd_cxm_qmi:s0 +/dev/smd_pkt_loopback u:object_r:smd_pkt_loopback:s0 +/dev/smd_sns_adsp u:object_r:smd_sns_adsp:s0 +/dev/smd_sns_dsps u:object_r:smd_sns_dsps:s0 +/dev/smdcntl[0-9]* u:object_r:smd_cntl:s0 +/dev/smem_log u:object_r:log_device:s0 +/dev/socket/audio u:object_r:audio_socket:s0 +/dev/socket/hdmid u:object_r:hdmi_socket:s0 +#remove it because already defined in new version of NSA release +#/dev/socket/mdns u:object_r:mdns_socket:s0 +/dev/socket/mpctl u:object_r:mpctl_socket:s0 +/dev/socket/mpdecision(/.*)? u:object_r:mpdecision_socket:s0 +/dev/socket/pps u:object_r:pps_socket:s0 +/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/socket/radio u:object_r:radio_socket:s0 +/dev/tspdrv u:object_r:tspdrv_device:s0 +/dev/ttyHS[0-9]* u:object_r:bluetooth_serial_device:s0 +/dev/ttyHSL[0-9]* u:object_r:radio_device:s0 +/dev/usf1 u:object_r:usf_device:s0 +/dev/umts_ipc0 u:object_r:radio_device:s0 +/dev/v4l-subdev[0-9]* u:object_r:camera_device:s0 +/dev/wcnss_wlan u:object_r:wifi_device:s0 +/dev/jpeg[0-2]* u:object_r:camera_device:s0 +/dev/radio0 u:object_r:fm_radio_device:s0 + +############################# +# DATA file +# +/data/misc/gpsone_d(/.*)? u:object_r:gps_data_file:s0 +/data/misc/location(/.*)? u:object_r:gps_data_file:s0 +/data/time(/.*)? u:object_r:time_data_file:s0 + +############################# +# EFS file +# +/efs/drm(/.*)? u:object_r:drm_efs_file:s0 + +############################# +# System files +# +/system/bin/ATFWD-daemon u:object_r:ATFWD-daemon_exec:s0 +/system/bin/adsprpcd u:object_r:adsprpcd_exec:s0 +/system/bin/audiod u:object_r:audiod_exec:s0 +/system/bin/charger_monitor u:object_r:charger_monitor_exec:s0 +/system/bin/cnd u:object_r:cnd_exec:s0 +/system/bin/efsks u:object_r:efsks_exec:s0 +/system/bin/geomagneticd u:object_r:geomagneticd_exec:s0 +/system/bin/gpsone_daemon u:object_r:gpsone_daemon_exec:s0 +/system/bin/ks u:object_r:ks_exec:s0 +/system/bin/location-mq u:object_r:location-mq_exec:s0 +/system/bin/lowi-server u:object_r:lowi-server_exec:s0 +/system/bin/mcDriverDaemon u:object_r:mobicoredaemon_exec:s0 +/system/bin/mcDriverDaemonQC u:object_r:mobicoredaemon_exec:s0 +/system/bin/mm-pp-daemon u:object_r:mm-pp-daemon_exec:s0 +/system/bin/mm-qcamera-daemon u:object_r:mm-qcamera-daemon_exec:s0 +/system/bin/mpdecision u:object_r:mpdecision_exec:s0 +/system/bin/qcks u:object_r:qcks_exec:s0 +/system/bin/qcom-system-daemon u:object_r:qcom-system-daemon_exec:s0 +/system/bin/qmuxd u:object_r:qmuxd_exec:s0 +/system/bin/qosmgr u:object_r:qosmgr_exec:s0 +/system/bin/qrngd u:object_r:qrngd_exec:s0 +/system/bin/qseecomd u:object_r:qseecomd_exec:s0 +/system/bin/quipc_igsn u:object_r:quipc_igsn_exec:s0 +/system/bin/quipc_main u:object_r:quipc_main_exec:s0 +/system/bin/rmt_storage u:object_r:rmt_storage_exec:s0 +/system/bin/scranton_RD u:object_r:playready_exec:s0 +/system/bin/secstarter u:object_r:secstarter_exec:s0 +/system/bin/smdexe u:object_r:smdexe_exec:s0 +/system/bin/ssr_diag u:object_r:ssr_diag_exec:s0 +/system/bin/thermal-engine u:object_r:thermald_exec:s0 +/system/bin/thermald u:object_r:thermald_exec:s0 +/system/bin/time_daemon u:object_r:time_daemon_exec:s0 +/system/bin/wiperiface u:object_r:wiperiface_exec:s0 +#line 1 "vendor/samsung/common/sepolicy/vmware/file_contexts" +# VMware daemon +/system/bin/mvpd u:object_r:vmwared_exec:s0 + +# Vmware device +/dev/mvpkm u:object_r:vmware_device:s0 + +# VMWare sysfs +/sys/hypervisor(/.*) u:object_r:sysfs_vmware_writable:s0 +#line 1 "vendor/samsung/common/sepolicy/qcom_common/carrier_spr/file_contexts" +#### Kineto for secsprextension/java/com/oem/smartwifisupport +/dev/socket/cfiat u:object_r:cfiat_socket:s0 +/dev/socket/kipc u:object_r:kipc_socket:s0 + +############################# +# ItsOn file +# +/system/vendor/itson(/.*)? u:object_r:sprintitson_file:s0 +#/vendor/app(/.*)? u:object_r:sprintitson_file:s0 +/carrier/itson(/.*)? u:object_r:sprintitson_file:s0 +/system/vendor/itson/itson-bootstrapper.sh u:object_r:itsonbs_exec:s0 + diff --git a/kernel_image/fstab.qcom b/kernel_image/fstab.qcom new file mode 100644 index 0000000..9d54820 --- /dev/null +++ b/kernel_image/fstab.qcom @@ -0,0 +1,20 @@ +# Android fstab file. +# The filesystem that contains the filesystem checker binary (typically /system) cannot +# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK + +#TODO: Add 'check' as fs_mgr_flags with data partition. +# Currently we dont have e2fsck compiled. So fs check would failed. + +# +/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,errors=panic wait +/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check,encryptable=footer + + +# +/devices/platform/msm_sdcc.2/mmc_host/mmc2,/devices/platform/msm_sdcc.3/mmc_host/mmc1 auto vfat default voldmanaged=extSdCard:auto,noemulatedsd +/devices/platform/msm_hsusb_host/usb*sda auto vfat default voldmanaged=UsbDriveA:auto +/devices/platform/msm_hsusb_host/usb*sdb auto vfat default voldmanaged=UsbDriveB:auto +/devices/platform/msm_hsusb_host/usb*sdc auto vfat default voldmanaged=UsbDriveC:auto +/devices/platform/msm_hsusb_host/usb*sdd auto vfat default voldmanaged=UsbDriveD:auto +/devices/platform/msm_hsusb_host/usb*sde auto vfat default voldmanaged=UsbDriveE:auto +/devices/platform/msm_hsusb_host/usb*sdf auto vfat default voldmanaged=UsbDriveF:auto diff --git a/kernel_image/init b/kernel_image/init new file mode 100755 index 0000000..0117e00 Binary files /dev/null and b/kernel_image/init differ diff --git a/kernel_image/init.bt.rc b/kernel_image/init.bt.rc new file mode 100755 index 0000000..2c4e0c5 --- /dev/null +++ b/kernel_image/init.bt.rc @@ -0,0 +1,147 @@ +on boot + +# for bluetooth +service hciattach /system/bin/sh /system/etc/init.qcom.bt.sh + class late_start + user bluetooth + group qcom_oncrpc bluetooth net_bt_admin system radio + disabled + oneshot + +# for bluetooth rf test. +service bt_dut_cmd /system/bin/qcom_dut + group bluetooth net_bt_admin + class main + disabled + oneshot + +service bt_audio_dut_cmd /system/bin/qcom_audio_dut + group bluetooth net_bt_admin + class main + disabled + +## LE 2 wired Test +service LE_dut_cmd_on /system/bin/LE_dut --le_enable + group bluetooth net_bt_admin + disabled + oneshot + + service LE_dut_cmd_off /system/bin/LE_dut --le_disable + group bluetooth net_bt_admin + disabled + oneshot + +## LE Tx Ouput Power +service LE_tx_low /system/bin/LE_dut --tx_low + class main + group bluetooth net_bt_admin + disabled + oneshot + +service LE_tx_mid /system/bin/LE_dut --tx_mid + class main + group bluetooth net_bt_admin + disabled + oneshot + +service LE_tx_max /system/bin/LE_dut --tx_max + class main + group bluetooth net_bt_admin + disabled + oneshot + +## LE Tx Modulation Characteristics +# Payload 0x0F +service LE_tx_M_low /system/bin/LE_dut --tx_m_low + class main + group bluetooth net_bt_admin + disabled + oneshot + +service LE_tx_M_mid /system/bin/LE_dut --tx_m_mid + class main + group bluetooth net_bt_admin + disabled + oneshot + +service LE_tx_M_max /system/bin/LE_dut --tx_m_max + class main + group bluetooth net_bt_admin + disabled + oneshot + +# Payload 0xAA +service LE_tx_M_1_low /system/bin/LE_dut --tx_m_1_low + class main + group bluetooth net_bt_admin + disabled + oneshot + +service LE_tx_M_1_mid /system/bin/LE_dut --tx_m_1_mid + class main + group bluetooth net_bt_admin + disabled + oneshot + +service LE_tx_M_1_max /system/bin/LE_dut --tx_m_1_max + class main + group bluetooth net_bt_admin + disabled + oneshot + +## Carrier Frequency +service LE_tx_C_low /system/bin/LE_dut --tx_c_low + class main + group bluetooth net_bt_admin + disabled + oneshot + +service LE_tx_C_mid /system/bin/LE_dut --tx_c_mid + class main + group bluetooth net_bt_admin + disabled + oneshot + +service LE_tx_C_max /system/bin/LE_dut --tx_c_max + class main + group bluetooth net_bt_admin + disabled + oneshot + +## In-band Emissions +service LE_tx_I_low /system/bin/LE_dut --tx_i_low + class main + group bluetooth net_bt_admin + disabled + oneshot + +service LE_tx_I_max /system/bin/LE_dut --tx_i_max + class main + group bluetooth net_bt_admin + disabled + oneshot + +## Rx Test +service LE_rx_ready_low /system/bin/LE_dut --rx_low + class main + group bluetooth net_bt_admin + disabled + oneshot + +service LE_rx_ready_mid /system/bin/LE_dut --rx_mid + class main + group bluetooth net_bt_admin + disabled + oneshot + +service LE_rx_ready_max /system/bin/LE_dut --rx_max + class main + group bluetooth net_bt_admin + disabled + oneshot + +service LE_test_end /system/bin/LE_dut --test_end + class main + group bluetooth net_bt_admin + disabled + oneshot diff --git a/kernel_image/init.carrier.rc b/kernel_image/init.carrier.rc new file mode 100755 index 0000000..360ebaa --- /dev/null +++ b/kernel_image/init.carrier.rc @@ -0,0 +1,143 @@ +# Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Code Aurora nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +on init + # Support Preload install apks + mkdir /preload 0771 system system + +on fs + wait /dev/block/platform/msm_sdcc.1/by-name/modem + mount vfat /dev/block/platform/msm_sdcc.1/by-name/modem /firmware ro shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337 + +on boot + +# permissions for bluetooth. + setprop ro.bt.bdaddr_path "/efs/bluetooth/bt_addr" + chown bluetooth net_bt_stack ro.bt.bdaddr_path + chown bluetooth net_bt_stack /dev/ttyHS0 + chmod 0660 /dev/ttyHS0 + chmod 0660 /sys/class/rfkill/rfkill0/state + chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state + chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/type + +# SSWAP + write /proc/sys/vm/swappiness 130 + +# bluetooth LPM + chmod 0660 /proc/bluetooth/sleep/lpm + chmod 0220 /proc/bluetooth/sleep/btwrite + chown bluetooth net_bt_stack /proc/bluetooth/sleep/lpm + chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite + chmod 0600 /dev/btlock + chown bluetooth bluetooth /dev/btlock + + + chown radio system /sys/class/sec/switch/usb_sel + chown radio system /sys/class/sec/switch/usb_state + chown radio system /sys/class/sec/switch/uart_sel + chown radio system /sys/class/sec/switch/apo_factory + +# Permissions for silent crash service + + + chown system system /dev/ramdump_modem_fw + chown system system /dev/ramdump_modem_sw + chown system system /dev/ramdump_smem-modem + chown system system /dev/ramdump_kernel_log + + + + chmod 0600 /dev/ramdump_modem_fw + chmod 0600 /dev/ramdump_modem_sw + chmod 0600 /dev/ramdump_smem-modem +# Define TCP buffer sizes for various networks +# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax, + setprop net.tcp.buffersize.default 4096,87380,704512,4096,16384,110208 + setprop net.tcp.buffersize.wifi 524288,1048576,2097152,262144,524288,1048576 + setprop net.tcp.buffersize.lte 524288,1048576,2560000,524288,1048576,2560000 + setprop net.tcp.buffersize.umts 4094,87380,704512,4096,16384,110208 + setprop net.tcp.buffersize.hspa 4092,87380,704512,4096,16384,262144 + setprop net.tcp.buffersize.hsupa 4092,87380,704512,4096,16384,262144 + setprop net.tcp.buffersize.hsdpa 4092,87380,704512,4096,16384,110208 + setprop net.tcp.buffersize.hspap 4092,87380,704512,4096,16384,262144 + setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040 + setprop net.tcp.buffersize.gprs 4092,30000,30000,4096,8760,11680 + setprop net.tcp.buffersize.evdo 4094,87380,262144,4096,16384,262144 + +on fs + + + #For Absolute Persistence Partition + + mkdir /persdata 0755 system system + mkdir /persdata/absolute 0750 system system + + # Support Preload install apks + wait /dev/block/platform/msm_sdcc.1/by-name/hidden + mount ext4 /dev/block/platform/msm_sdcc.1/by-name/hidden /preload nosuid nodev ro barrier=1 + setprop storage.preload.complete 1 + + wait /dev/block/platform/msm_sdcc.1/by-name/modem + mount vfat /dev/block/platform/msm_sdcc.1/by-name/modem /firmware ro shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337 + + wait /dev/block/platform/msm_sdcc.1/by-name/persdata + check_fs /dev/block/platform/msm_sdcc.1/by-name/persdata ext4 + mount ext4 /dev/block/platform/msm_sdcc.1/by-name/persdata /persdata/absolute nosuid nodev barrier=1 + + chown system system /persdata + chmod 0755 /persdata + chown system system /persdata/absolute + chmod 0750 /persdata/absolute + +# TVout +service TvoutService_C /system/bin/bintvoutservice + class main + user system + group system + +# MM Property +#on property:sys.qseecomd.enable=true +# exec /system/bin/scranton_RD + +#InsideSecure VPN Client +service vpnclientpm /system/bin/vpnclientpm -u 1000 -g 1000 \ + -O /data/data/com.ipsec.service/vpnclientpm.txt \ + -U rmnet,rmnet_usb,wlan,bt-pan,rndis,p2p,eth + socket vpnclientpm seqpacket 0600 system system + disabled +on property:service.vpnclientpm.enable=1 + start vpnclientpm +on property:service.vpnclientpm.enable=0 + stop vpnclientpm + +# SSWAP +service swapon /sbin/sswap -s + class core + user root + group root + seclabel u:r:sswap:s0 + oneshot diff --git a/kernel_image/init.container.rc b/kernel_image/init.container.rc new file mode 100755 index 0000000..28311ad --- /dev/null +++ b/kernel_image/init.container.rc @@ -0,0 +1,40 @@ +on early-init + +on init + + # create Container (KNOX 1.0) mountpoints for KNOX Migration + mkdir /knox_data 0775 root system + mkdir /knox_data/userdata 0775 system system + mkdir /knox_data/appdata 0775 system system + + mkdir /mnt/shell/knox-emulated 0700 system system + mkdir /storage/extSdCard 0000 system system + + symlink /storage/extSdCard /mnt/extSdCard + symlink /mnt/shell/knox-emulated /storage/knox-emulated + + export SECONDARY_STORAGE /storage/extSdCard + +on post-fs-data + + # create knox filesystem structure + mkdir /data/knox 0771 system system + mkdir /data/knox/data 0771 system system + mkdir /data/knox/sdcard 0771 system system + mkdir /data/knox/ext_sdcard 0771 system system + mkdir /data/knox/app 0771 system system + mkdir /data/knox/tmp 0771 system system + + export KNOX_STORAGE /data/knox/ext_sdcard + + restorecon /data/knox + +on boot + +# virtual sdcard daemon running as system (1000) +service knox /system/bin/sdcard /data/knox/sdcard /mnt/shell/knox-emulated 1000 1000 + class late_start + oneshot + + start knox + diff --git a/kernel_image/init.environ.rc b/kernel_image/init.environ.rc new file mode 100755 index 0000000..0780a61 --- /dev/null +++ b/kernel_image/init.environ.rc @@ -0,0 +1,12 @@ +# set up the global environment +on init + export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin + export LD_LIBRARY_PATH /vendor/lib:/system/lib + export ANDROID_BOOTLOGO 1 + export ANDROID_ROOT /system + export ANDROID_ASSETS /system/app + export ANDROID_DATA /data + export ANDROID_STORAGE /storage + export ASEC_MOUNTPOINT /mnt/asec + export LOOP_MOUNTPOINT /mnt/obb + export BOOTCLASSPATH /system/framework/core.jar:/system/framework/conscrypt.jar:/system/framework/okhttp.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework2.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/webviewchromium.jar:/system/framework/sec_edm.jar:/system/framework/secocsp.jar:/system/framework/seccamera.jar:/system/framework/scrollpause.jar:/system/framework/stayrotation.jar:/system/framework/smartfaceservice.jar:/system/framework/commonimsinterface.jar:/system/framework/org.codeaurora.Performance.jar diff --git a/kernel_image/init.qcom.class_core.sh b/kernel_image/init.qcom.class_core.sh new file mode 100755 index 0000000..20a1488 --- /dev/null +++ b/kernel_image/init.qcom.class_core.sh @@ -0,0 +1,199 @@ +#!/system/bin/sh +# Copyright (c) 2012, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# Set platform variables +target=`getprop ro.board.platform` +soc_hwplatform=`cat /sys/devices/system/soc/soc0/hw_platform` 2> /dev/null +soc_hwid=`cat /sys/devices/system/soc/soc0/id` 2> /dev/null +soc_hwver=`cat /sys/devices/system/soc/soc0/platform_version` 2> /dev/null + + +# Dynamic Memory Managment (DMM) provides a sys file system to the userspace +# that can be used to plug in/out memory that has been configured as unstable. +# This unstable memory can be in Active or In-Active State. +# Each of which the userspace can request by writing to a sys file. +# +# ro.dev.dmm = 1; Indicates that DMM is enabled in the Android User Space. This +# property is set in the Android system properties file. +# +# If ro.dev.dmm.dpd.start_address is set here then the target has a memory +# configuration that supports DynamicMemoryManagement. +init_DMM() +{ + block=-1 + + case "$target" in + "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "msm8960") + ;; + *) + return + ;; + esac + + mem="/sys/devices/system/memory" + op=`cat $mem/movable_start_bytes` + case "$op" in + "0") + log -p i -t DMM DMM Disabled. movable_start_bytes not set: $op + ;; + + "$mem/movable_start_bytes: No such file or directory ") + log -p i -t DMM DMM Disabled. movable_start_bytes does not exist: $op + ;; + + *) + log -p i -t DMM DMM available. movable_start_bytes at $op + movable_start_bytes=0x`cat $mem/movable_start_bytes` + block_size_bytes=0x`cat $mem/block_size_bytes` + block=$((#${movable_start_bytes}/${block_size_bytes})) + + chown -h system.system $mem/memory$block/state + chown -h system.system $mem/probe + chown -h system.system $mem/active + chown -h system.system $mem/remove + + case "$target" in + "msm7630_surf" | "msm7630_1x" | "msm7630_fusion") + echo $movable_start_bytes > $mem/probe + case "$?" in + "0") + log -p i -t DMM $movable_start_bytes to physical hotplug succeeded. + ;; + *) + log -p e -t DMM $movable_start_bytes to physical hotplug failed. + return + ;; + esac + + echo online > $mem/memory$block/state + case "$?" in + "0") + log -p i -t DMM \'echo online\' to logical hotplug succeeded. + ;; + *) + log -p e -t DMM \'echo online\' to logical hotplug failed. + return + ;; + esac + ;; + esac + + setprop ro.dev.dmm.dpd.start_address $movable_start_bytes + setprop ro.dev.dmm.dpd.block $block + ;; + esac + + case "$target" in + "msm8960") + return + ;; + esac + + # For 7X30 targets: + # ro.dev.dmm.dpd.start_address is set when the target has a 2x256Mb memory + # configuration. This is also used to indicate that the target is capable of + # setting EBI-1 to Deep Power Down or Self Refresh. + op=`cat $mem/low_power_memory_start_bytes` + case "$op" in + "0") + log -p i -t DMM Self-Refresh-Only Disabled. low_power_memory_start_bytes not set:$op + ;; + "$mem/low_power_memory_start_bytes No such file or directory ") + log -p i -t DMM Self-Refresh-Only Disabled. low_power_memory_start_bytes does not exist:$op + ;; + *) + log -p i -t DMM Self-Refresh-Only available. low_power_memory_start_bytes at $op + ;; + esac +} + +# +# For controlling console and shell on console on 8960 - perist.serial.enable 8960 +# On other target use default ro.debuggable property. +# +serial=`getprop persist.serial.enable` +dserial=`getprop ro.debuggable` +case "$target" in + "msm8960") + case "$serial" in + "0") + echo 0 > /sys/devices/platform/msm_serial_hsl.0/console + ;; + "1") + echo 1 > /sys/devices/platform/msm_serial_hsl.0/console + start console + ;; + *) + case "$dserial" in + "1") + start console + ;; + esac + ;; + esac + ;; + *) + case "$dserial" in + "1") + start console + ;; + esac + ;; +esac + +# +# Allow persistent faking of bms +# User needs to set fake bms charge in persist.bms.fake_batt_capacity +# +fake_batt_capacity=`getprop persist.bms.fake_batt_capacity` +case "$fake_batt_capacity" in + "") ;; #Do nothing here + * ) + case $target in + "msm8960") + echo "$fake_batt_capacity" > /sys/module/pm8921_bms/parameters/bms_fake_battery + ;; + esac +esac + +case "$target" in + "msm7630_surf" | "msm7630_1x" | "msm7630_fusion") + insmod /system/lib/modules/ss_mfcinit.ko + insmod /system/lib/modules/ss_vencoder.ko + insmod /system/lib/modules/ss_vdecoder.ko + chmod -h 0666 /dev/ss_mfc_reg + chmod -h 0666 /dev/ss_vdec + chmod -h 0666 /dev/ss_venc + + init_DMM + ;; + + "msm8960") + init_DMM + ;; +esac diff --git a/kernel_image/init.qcom.early_boot.sh b/kernel_image/init.qcom.early_boot.sh new file mode 100755 index 0000000..88873b1 --- /dev/null +++ b/kernel_image/init.qcom.early_boot.sh @@ -0,0 +1,149 @@ +#!/system/bin/sh +# Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +export PATH=/system/bin + +# Set platform variables +soc_hwplatform=`cat /sys/devices/system/soc/soc0/hw_platform` 2> /dev/null +soc_hwid=`cat /sys/devices/system/soc/soc0/id` 2> /dev/null +soc_hwver=`cat /sys/devices/system/soc/soc0/platform_version` 2> /dev/null + +log -t BOOT -p i "MSM target '$1', SoC '$soc_hwplatform', HwID '$soc_hwid', SoC ver '$soc_hwver'" + +case "$1" in + "msm7630_surf" | "msm7630_1x" | "msm7630_fusion") + case "$soc_hwplatform" in + "FFA" | "SVLTE_FFA") + # linking to surf_keypad_qwerty.kcm.bin instead of surf_keypad_numeric.kcm.bin so that + # the UI keyboard works fine. + ln -s /system/usr/keychars/surf_keypad_qwerty.kcm.bin /system/usr/keychars/surf_keypad.kcm.bin + ;; + "Fluid") + setprop ro.sf.lcd_density 240 + setprop qcom.bt.dev_power_class 2 + ;; + *) + ln -s /system/usr/keychars/surf_keypad_qwerty.kcm.bin /system/usr/keychars/surf_keypad.kcm.bin + ;; + esac + ;; + + "msm8660") + case "$soc_hwplatform" in + "Fluid") + setprop ro.sf.lcd_density 240 + ;; + "Dragon") + setprop ro.sound.alsa "WM8903" + ;; + esac + ;; + + "msm8960") + # lcd density is write-once. Hence the separate switch case + case "$soc_hwplatform" in + "Liquid") + if [ "$soc_hwver" == "196608" ]; then # version 0x30000 is 3D sku + setprop ro.sf.hwrotation 90 + fi + + setprop ro.sf.lcd_density 160 + ;; + "MTP") + setprop ro.sf.lcd_density 240 + ;; + *) + case "$soc_hwid" in + "142") #8x30 QRD + setprop ro.sf.lcd_density 320 + ;; + "109") + setprop ro.sf.lcd_density 160 + ;; + *) + setprop ro.sf.lcd_density 240 + ;; + esac + ;; + esac + + #Set up MSM-specific configuration + case "$soc_hwid" in + 87) + #8960 + setprop debug.composition.type dyn + ;; + 153 | 154 | 155 | 156 | 157 | 138 | 179 | 180 | 181) + #8064 V2 PRIME | 8930AB | 8630AB | 8230AB | 8030AB | 8960AB | 8130/AA/AB + setprop debug.composition.type c2d + ;; + *) + ;; + esac + + case "$soc_hwid" in + 87 | 116 | 117 | 118 | 119 | 138 | 142 | 143 | 144 | 154 | 155 | 156 | 157 | 179 | 180 | 181) + #Disable subsystem restart for 8x30 and 8960 + setprop persist.sys.ssr.restart_level 1 + ;; + *) + ;; + esac + ;; +esac + +# Setup HDMI related nodes & permissions +# HDMI can be fb1 or fb2 +# Loop through the sysfs nodes and determine +# the HDMI(dtv panel) +fb_cnt=0 +for file in /sys/class/graphics/fb* +do + value=`cat $file/msm_fb_type` + case "$value" in + "dtv panel") + chown -h system.graphics $file/hpd + chown -h system.graphics $file/vendor_name + chown -h system.graphics $file/product_description + chmod -h 0664 $file/hpd + chmod -h 0664 $file/vendor_name + chmod -h 0664 $file/product_description + chmod -h 0664 $file/video_mode + chmod -h 0664 $file/format_3d + # create symbolic link + ln -s "/dev/graphics/fb"$fb_cnt /dev/graphics/hdmi + # Change owner and group for media server and surface flinger + chown -h system.system $file/format_3d;; + esac + fb_cnt=$(( $fb_cnt + 1)) +done + +# Set date to a time after 2008 +# This is a workaround for Zygote to preload time related classes properly +date -s 20090102.130000 + diff --git a/kernel_image/init.qcom.rc b/kernel_image/init.qcom.rc new file mode 100755 index 0000000..acde334 --- /dev/null +++ b/kernel_image/init.qcom.rc @@ -0,0 +1,801 @@ +# Copyright (c) 2009-2013, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +import init.qcom.usb.rc +import init.target.rc +import init.ril.rc + +on init + # See storage config details at http://source.android.com/tech/storage/ + mkdir /mnt/media_rw/extSdCard 0700 media_rw media_rw + mkdir /mnt/media_rw/UsbDriveA 0700 media_rw media_rw + mkdir /mnt/media_rw/UsbDriveB 0700 media_rw media_rw + mkdir /mnt/media_rw/UsbDriveC 0700 media_rw media_rw + mkdir /mnt/media_rw/UsbDriveD 0700 media_rw media_rw + mkdir /mnt/media_rw/UsbDriveE 0700 media_rw media_rw + mkdir /mnt/media_rw/UsbDriveF 0700 media_rw media_rw + + # Set permissions for persist partition + mkdir /persist 0771 system system + # See storage config details at http://source.android.com/tech/storage/ + mkdir /mnt/shell/emulated 0700 shell shell + mkdir /storage/emulated 0555 root root + + export EXTERNAL_STORAGE /storage/emulated/legacy + export EMULATED_STORAGE_SOURCE /mnt/shell/emulated + export EMULATED_STORAGE_TARGET /storage/emulated + # This is no longer supported from KK release. + #export BOOTCLASSPATH ${BOOTCLASSPATH}:/system/framework/qcom.fmradio.jar + + # Support legacy paths + symlink /storage/emulated/legacy /sdcard + symlink /storage/emulated/legacy /mnt/sdcard + symlink /storage/emulated/legacy /storage/sdcard0 + symlink /mnt/shell/emulated/0 /storage/emulated/legacy + + # map "real" external storages paths also in same way. backwards compatibility. + symlink /storage/extSdCard /mnt/extSdCard + symlink /storage/UsbDriveA /mnt/UsbDriveA + symlink /storage/UsbDriveB /mnt/UsbDriveB + symlink /storage/UsbDriveC /mnt/UsbDriveC + symlink /storage/UsbDriveD /mnt/UsbDriveD + symlink /storage/UsbDriveE /mnt/UsbDriveE + symlink /storage/UsbDriveF /mnt/UsbDriveF + + export SECONDARY_STORAGE /storage/extSdCard + + mkdir /storage/extSdCard 0700 root root + mkdir /storage/UsbDriveA 0700 root root + mkdir /storage/UsbDriveB 0700 root root + mkdir /storage/UsbDriveC 0700 root root + mkdir /storage/UsbDriveD 0700 root root + mkdir /storage/UsbDriveE 0700 root root + mkdir /storage/UsbDriveF 0700 root root + +on early-boot + # set RLIMIT_MEMLOCK to 64MB + setrlimit 8 67108864 67108864 + # exec /system/bin/sh /init.qcom.early_boot.sh ${ro.board.platform} + # exec /system/bin/sh /init.qcom.syspart_fixup.sh ${ro.board.platform} ${ro.serialno} + setprop qcom.audio.init complete + +service modem-sh /system/bin/sh /system/etc/init.qcom.modem_links.sh + class core + user root + oneshot + +on boot + chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power + chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type + chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state + chown bluetooth bluetooth /proc/bluetooth/sleep/proto + chown system system /sys/module/sco/parameters/disable_esco + chown bluetooth bluetooth /sys/module/hci_smd/parameters/hcismd_set + chmod 0660 /sys/module/bluetooth_power/parameters/power + chmod 0660 /sys/module/hci_smd/parameters/hcismd_set + chmod 0660 /sys/class/rfkill/rfkill0/state + chmod 0660 /proc/bluetooth/sleep/proto + chown bluetooth net_bt_stack /dev/ttyHS0 + chmod 0660 /dev/ttyHS0 + chown bluetooth bluetooth /sys/devices/platform/msm_serial_hs.0/clock + chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock + + chmod 0660 /dev/ttyHS2 + chown bluetooth bluetooth /dev/ttyHS2 + + # for BT MAC address + mkdir /efs/bluetooth 0775 radio system + # if already exist + chown radio system /efs/bluetooth + chmod 0775 /efs/bluetooth + + #Create QMUX deamon socket area + mkdir /dev/socket/qmux_radio 0770 radio radio + chmod 2770 /dev/socket/qmux_radio + mkdir /dev/socket/qmux_audio 0770 media audio + chmod 2770 /dev/socket/qmux_audio + mkdir /dev/socket/qmux_bluetooth 0770 bluetooth bluetooth + chmod 2770 /dev/socket/qmux_bluetooth + mkdir /dev/socket/qmux_gps 0770 gps gps + chmod 2770 /dev/socket/qmux_gps + + setprop wifi.interface wlan0 + + setprop ro.telephony.call_ring.multiple false + + #Set SUID bit for usbhub + #chmod 4755 /system/bin/usbhub + #chmod 755 /system/bin/usbhub_init + + #Remove SUID bit for iproute2 ip tool + chmod 0755 /system/bin/ip + + + chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state + + # Change permissions for fps_level nodes + chown system graphics /sys/class/graphics/fb0/msm_fb_fps_level + chown system graphics /sys/class/graphics/fb1/msm_fb_fps_level + chown system graphics /sys/class/graphics/fb2/msm_fb_fps_level + chmod 644 /sys/class/graphics/fb0/msm_fb_fps_level + chmod 400 /sys/class/graphics/fb1/msm_fb_fps_level + chmod 400 /sys/class/graphics/fb2/msm_fb_fps_level + + #For bridgemgr daemon to inform the USB driver of the correct transport + chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport + + #To allow interfaces to get v6 address when tethering is enabled + write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_usb0/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_usb1/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_usb2/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_usb3/accept_ra 2 + + # To prevent out of order acknowledgements from making + # connection tracking to treat them as not belonging to + # the connection they belong to. + # Otherwise, a weird issue happens in which some long + # connections on high-throughput links get dropped when + # an ack packet comes out of order + write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1 + +# import cne init file +# on post-fs +# export LD_PRELOAD /system/lib/libNimsWrap.so + +# msm specific files that need to be created on /data +on post-fs-data + # we will remap this as /mnt/sdcard with the sdcard fuse tool + mkdir /data/media 0770 media_rw media_rw + chown media_rw media_rw /data/media + + mkdir /data/misc/bluetooth 0770 bluetooth bluetooth + + # Create the directories used by the Wireless subsystem + mkdir /data/misc/wifi 0770 wifi system + mkdir /data/misc/wifi/sockets 0770 wifi wifi + mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi + mkdir /data/misc/dhcp 0775 dhcp dhcp + chown dhcp dhcp /data/misc/dhcp + + # Create the directories used by CnE subsystem + mkdir /data/connectivity 0771 system system + chown system system /data/connectivity + + mkdir /data/connectivity/nsrm 0771 system system + chown system system /data/connectivity/nsrm + + # for WIFI TRP/TIS + chown system root /data/.psm.info + chmod 0664 /data/.psm.info + + # for WIFI Antena Selection + chown system root /data/.ant.info + chmod 0664 /data/.ant.info + + # for WIFI Version + write /data/.wifiver.info 0 + chown system root /data/.wifiver.info + chmod 0666 /data/.wifiver.info + + # for WIFI Cert + chmod 0664 /data/.bustxglom.info + chmod 0664 /data/.roamoff.info + chmod 0664 /data/.frameburst.info + chmod 0664 /data/.txbf.info + + # for WIFI MAC address + mkdir /efs/wifi 0775 radio system + chown system wifi /efs/wifi/.mac.info + chmod 0664 /efs/wifi/.mac.info + + # Create directory used by audio subsystem + mkdir /data/misc/audio 0770 audio audio + + # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections + # We chown/chmod /persist again so because mount is run as root + defaults + chown system system /persist + chmod 0771 /persist + chmod 0664 /sys/devices/platform/msm_sdcc.1/polling + chmod 0664 /sys/devices/platform/msm_sdcc.2/polling + chmod 0664 /sys/devices/platform/msm_sdcc.3/polling + chmod 0664 /sys/devices/platform/msm_sdcc.4/polling + + # Chown polling nodes as needed from UI running on system server + chown system system /sys/devices/platform/msm_sdcc.1/polling + chown system system /sys/devices/platform/msm_sdcc.2/polling + chown system system /sys/devices/platform/msm_sdcc.3/polling + chown system system /sys/devices/platform/msm_sdcc.4/polling + + #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant + mkdir /data/system 0775 system system + #symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant + + #Create directories for gpsone_daemon services + mkdir /data/misc/gpsone_d 0770 system gps + + #Create directories for QuIPS + mkdir /data/misc/quipc 0770 gps system + + #Create directories for Location services + mkdir /data/misc/location 0770 gps gps + mkdir /data/misc/location/mq 0770 gps gps + mkdir /data/misc/location/xtwifi 0770 gps gps + + #Create directory from IMS services + mkdir /data/shared 0755 + chown system system /data/shared + + #Create directory for FOTA + mkdir /data/fota 0771 + chown system system /data/fota + + #Create directory for hostapd + mkdir /data/hostapd 0770 system wifi + + # Create /data/time folder for time-services + mkdir /data/time/ 0700 system system + + mkdir /data/audio/ 0770 media audio + + setprop vold.post_fs_data_done 1 + +# GPIO DVS + chown radio system /sys/class/secgpio_check/secgpio_check_all/secgpio_ctrl + +# Export GPIO56 for fusion targets to enable/disable hub +# service usbhub_init /system/bin/usbhub_init +# class late_start +# user root +# disabled +# oneshot + +on property:init.svc.surfaceflinger=stopped + stop ppd + stop hdmid + +#on property:ro.board.platform=msm7630_fusion +# start usbhub_init + +on property:init.svc.wpa_supplicant=stopped + stop dhcpcd + +on property:bluetooth.isEnabled=true + start btwlancoex + write /sys/class/bluetooth/hci0/idle_timeout 7000 + +on property:bluetooth.sap.status=running + start bt-sap + +on property:bluetooth.sap.status=stopped + stop bt-sap + +on property:bluetooth.dun.status=running + start bt-dun + +on property:bluetooth.dun.status=stopped + stop bt-dun + +service qcom-c_core-sh /system/bin/sh /init.qcom.class_core.sh + class core + user root + oneshot + +service qcom-ril-sh /system/bin/sh /init.ril.sh + class main + user root + disabled + oneshot + +on property:vold.decrypt=trigger_restart_framework + start qcom-ril-sh + start config_bluetooth + +service cnd /system/bin/cnd + class late_start + socket cnd stream 660 root inet + +service irsc_util /system/bin/logwrapper /system/bin/irsc_util "/etc/sec_config" + class main + user root + oneshot + +service rmt_storage /system/bin/rmt_storage + class core + user root + disabled + +on property:ro.boot.emmc=true + start rmt_storage + +service config_bluetooth /system/bin/sh /system/etc/init.qcom.bt.sh "onboot" + class core + user root + oneshot + +service hciattach /system/bin/sh /system/etc/init.qcom.bt.sh + class late_start + user bluetooth + group qcom_oncrpc bluetooth net_bt_admin + disabled + oneshot + +on property:bluetooth.hciattach=true + start hciattach + +on property:bluetooth.hciattach=false + setprop bluetooth.status off + +service hciattach_ath3k /system/bin/sh /system/etc/init.ath3k.bt.sh + class late_start + user bluetooth + group system bluetooth net_bt_admin misc + disabled + oneshot + +service bt-dun /system/bin/sh /system/etc/init.qcom.btdun.sh + class late_start + user bluetooth + group bluetooth net_bt_admin inet + disabled + oneshot + +service bt-sap /system/bin/sapd 15 + user bluetooth + group bluetooth net_bt_admin + class late_start + disabled + oneshot + +service bridgemgrd /system/bin/bridgemgrd + class late_start + user radio + group radio qcom_diag + disabled + +service port-bridge /system/bin/port-bridge /dev/smd0 /dev/ttyGS0 + class late_start + user system + group system inet + disabled + +service qmiproxy /system/bin/qmiproxy + class main + user radio + group radio qcom_diag + disabled + +# QMUX must be in multiple groups to support external process connections +service qmuxd /system/bin/qmuxd + class main + user radio + group radio audio bluetooth gps qcom_diag + disabled + +service netmgrd /system/bin/netmgrd + class main + disabled + +service sensors /system/bin/sensors.qcom + class late_start + user root + group root + disabled + +on property:ro.use_data_netmgrd=false + # netmgr not supported on specific target + stop netmgrd + +# Adjust socket buffer to enlarge TCP receive window for high bandwidth +# but only if ro.data.large_tcp_window_size property is set. +on property:ro.data.large_tcp_window_size=true + write /proc/sys/net/ipv4/tcp_adv_win_scale 2 + +service btwlancoex /system/bin/sh /system/etc/init.qcom.coex.sh + class late_start + user bluetooth + group bluetooth net_bt_admin inet net_admin net_raw + disabled + oneshot + +service p2p_supplicant /system/bin/wpa_supplicant \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ + -I/system/etc/wifi/wpa_supplicant_overlay.conf -O/data/misc/wifi/sockets -N \ + -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ + -I/system/etc/wifi/p2p_supplicant_overlay.conf \ + -puse_p2p_group_interface=1 -puse_multi_chan_concurrent=1 \ + -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 +# we will start as root and wpa_supplicant will switch to user wifi +# after setting up the capabilities required for WEXT +# user wifi +# group wifi inet keystore + class main + socket wpa_wlan0 dgram 660 wifi wifi + disabled + oneshot + +service wpa_supplicant /system/bin/wpa_supplicant -g@android:wpa_wlan0 \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -e/data/misc/wifi/entropy.bin + # we will start as root and wpa_supplicant will switch to user wifi + # after setting up the capabilities required for WEXT + # user wifi + # group wifi inet keystore + class main + socket wpa_wlan0 dgram 660 wifi wifi + disabled + oneshot + +service dhcpcd_wlan0 /system/bin/dhcpcd -ABKL + class late_start + disabled + oneshot + +service dhcpcd_p2p /system/bin/dhcpcd -ABKLG + class late_start + disabled + oneshot + +service iprenew_wlan0 /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service iprenew_p2p /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service dhcpcd_bt-pan /system/bin/dhcpcd -BKLG + class late_start + disabled + oneshot + +service iprenew_bt-pan /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service dhcpcd_bnep1 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service dhcpcd_bnep2 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service dhcpcd_bnep3 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service dhcpcd_bnep4 /system/bin/dhcpcd -BKLG + disabled + oneshot + +#for WiFi MFG(TestMode) +service mfgloader /system/bin/mfgloader + class main + disabled + oneshot + +service wlandutservice /system/bin/wlandutservice + class main + user system + group wifi net_raw net_admin system inet + disabled + oneshot + +service macloader /system/bin/macloader + class main + oneshot + +on property:init.svc.macloader=stopped + chown system root /data/.cid.info + chmod 0664 /data/.cid.info + chown system root /data/.rev + chmod 0664 /data/.rev +# end of wifi + +service gpsone_daemon /system/bin/gpsone_daemon + class late_start + user gps + group gps qcom_oncrpc inet net_raw + disabled + +service quipc_igsn /system/bin/quipc_igsn + class late_start + user gps + group inet gps + disabled + +service quipc_main /system/bin/quipc_main + class late_start + user gps + group gps net_admin wifi inet + disabled + +service location_mq /system/bin/location-mq + class late_start + user gps + group gps + disabled + +service xtwifi_inet /system/bin/xtwifi-inet-agent + class late_start + user gps + group inet gps + disabled + +service xtwifi_client /system/bin/xtwifi-client + class late_start + user gps + group net_admin wifi inet gps + disabled + +service lowi-server /system/bin/lowi-server + class late_start + user gps + group gps net_admin wifi inet + disabled + +service fm_dl /system/bin/sh /system/etc/init.qcom.fm.sh + class late_start + user root + group system qcom_oncrpc + disabled + oneshot + +on property:crypto.driver.load=1 + insmod /system/lib/modules/qce.ko + insmod /system/lib/modules/qcedev.ko + +on property:crypto.driver.load=0 + exec /system/bin/rmmod qcedev.ko + exec /system/bin/rmmod qce.ko + +service drmdiag /system/bin/drmdiagapp + class late_start + user root + disabled + oneshot + +on property:drmdiag.load=1 + start drmdiag + +on property:drmdiag.load=0 + stop drmdiag + +service qcom-sh /system/bin/sh /init.qcom.sh + class late_start + user root + oneshot + +service qcom-post-boot /system/bin/sh /system/etc/init.qcom.post_boot.sh + class late_start + user root + disabled + oneshot + +service wifi-sdio-on /system/bin/sh /system/etc/init.qcom.sdio.sh + class late_start + group wifi inet + disabled + oneshot + +service wifi-crda /system/bin/sh /system/etc/init.crda.sh + class late_start + user root + disabled + oneshot + + +on property:sys.boot_completed=1 + start qcom-post-boot + +service atfwd /system/bin/ATFWD-daemon + class late_start + user system + group system radio + onrestart /system/bin/log -t RIL-ATFWD -p w "ATFWD daemon restarted" + +service hdmid /system/bin/hdmid + class late_start + socket hdmid stream 0660 root system graphics + disabled + +service ppd /system/bin/mm-pp-daemon + class late_start + user system + socket pps stream 0660 system system graphics + group system graphics + +service hostapd /system/bin/hostapd -dddd /data/hostapd/hostapd.conf + class late_start + user root + group root + oneshot + disabled + +service ds_fmc_appd /system/bin/ds_fmc_appd -p "rmnet0" -D + class late_start + group radio wifi inet + disabled + oneshot + +on property:persist.data.ds_fmc_app.mode=1 + start ds_fmc_appd + +service ims_regmanager /system/bin/exe-ims-regmanagerprocessnative + class late_start + group qcom_oncrpc net_bt_admin inet radio wifi + disabled + +on property:persist.ims.regmanager.mode=1 + start ims_regmanager + +on property:ro.data.large_tcp_window_size=true + # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB) + write /proc/sys/net/ipv4/tcp_adv_win_scale 2 + +service battery_monitor /system/bin/battery_monitor + user system + group system + disabled + +service ril-daemon1 /system/bin/rild -c 1 + class main + socket rild1 stream 660 root radio + socket rild-debug1 stream 660 radio system + user root + disabled + group radio cache inet misc audio sdcard_r sdcard_rw qcom_oncrpc diag qcom_diag log + +service profiler_daemon /system/bin/profiler_daemon + class late_start + user root + group root + disabled + +# virtual sdcard daemon running as media_rw (1023) +service sdcard /system/bin/sdcard -u 1023 -g 1023 -l -r /data/media /mnt/shell/emulated + class late_start + disabled + oneshot + +on property:ro.fuse_sdcard=true + start sdcard + +service fuse_extSdCard /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d -f /mnt/media_rw/extSdCard /storage/extSdCard + class late_start + disabled + oneshot + +service fuse_UsbDriveA /system/bin/sdcard -u 1023 -g 1023 -d -f /mnt/media_rw/UsbDriveA /storage/UsbDriveA + class late_start + disabled + oneshot + +service fuse_UsbDriveB /system/bin/sdcard -u 1023 -g 1023 -d -f /mnt/media_rw/UsbDriveB /storage/UsbDriveB + class late_start + disabled + oneshot + +service fuse_UsbDriveC /system/bin/sdcard -u 1023 -g 1023 -d -f /mnt/media_rw/UsbDriveC /storage/UsbDriveC + class late_start + disabled + oneshot + +service fuse_UsbDriveD /system/bin/sdcard -u 1023 -g 1023 -d -f /mnt/media_rw/UsbDriveD /storage/UsbDriveD + class late_start + disabled + oneshot + +service fuse_UsbDriveE /system/bin/sdcard -u 1023 -g 1023 -d -f /mnt/media_rw/UsbDriveE /storage/UsbDriveE + class late_start + disabled + oneshot + +service fuse_UsbDriveF /system/bin/sdcard -u 1023 -g 1023 -d -f /mnt/media_rw/UsbDriveF /storage/UsbDriveF + class late_start + disabled + oneshot + +# Binding fuse mount point to /storage/emulated/legacy +#on property:init.svc.sdcard=running +# wait /mnt/shell/emulated/0 +# mount none /mnt/shell/emulated/0 /storage/emulated/legacy bind + +# This will make sure that sdcard service starts as late_start. +on nonencrypted + setprop ro.fuse_sdcard ${persist.fuse_sdcard} + +on property:vold.decrypt=trigger_restart_framework + setprop ro.fuse_sdcard ${persist.fuse_sdcard} + +service hcidump /system/bin/sh /system/etc/hcidump.sh + user bluetooth + group bluetooth system net_bt_admin net_admin + disabled + oneshot + +service charger /charger + class charger + +service ssr_diag /system/bin/ssr_diag + class late_start + user system + group system + +#Disable boot timeout for external modems. +on property:persist.sys.mdm.timeout_disable=1 + write /sys/module/mdm_common/parameters/disable_boot_timeout 1 +# Limit to SoC reset (1) and independent SSR (3) +on property:persist.sys.ssr.restart_level=1 + write /sys/module/subsystem_restart/parameters/restart_level 1 +on property:persist.sys.ssr.restart_level=3 + write /sys/module/subsystem_restart/parameters/restart_level 3 + +on property:persist.radio.sglte_sim_active=true + kill qmiproxy 15 +on property:persist.radio.sglte_sim_active=false + kill qmiproxy 15 +on property:persist.radio.sglte_csfb=true + kill qmiproxy 15 +on property:persist.radio.sglte_csfb=false + kill qmiproxy 15 + +service diag_mdlog_start /system/bin/diag_mdlog + class late_start + user sdcard_rw + group system qcom_diag sdcard_rw sdcard_r media_rw + disabled + oneshot + +service diag_mdlog_stop /system/bin/diag_mdlog -k + class late_start + user sdcard_rw + group system qcom_diag sdcard_rw sdcard_r media_rw + disabled + oneshot diff --git a/kernel_image/init.qcom.sh b/kernel_image/init.qcom.sh new file mode 100755 index 0000000..bcce17e --- /dev/null +++ b/kernel_image/init.qcom.sh @@ -0,0 +1,144 @@ +#!/system/bin/sh +# Copyright (c) 2009-2013, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +target=`getprop ro.board.platform` +platformid=`cat /sys/devices/system/soc/soc0/id` +# +# Function to start sensors for DSPS enabled platforms +# +start_sensors() +{ + if [ -c /dev/msm_dsps -o -c /dev/sensors ]; then + mkdir -p /data/system/sensors + touch /data/system/sensors/settings + chmod -h 775 /data/system/sensors + chmod -h 664 /data/system/sensors/settings + chown -h system /data/system/sensors/settings + + mkdir -p /data/misc/sensors + chmod -h 775 /data/misc/sensors + + if [ ! -s /data/system/sensors/settings ]; then + # If the settings file is empty, enable sensors HAL + # Otherwise leave the file with it's current contents + echo 1 > /data/system/sensors/settings + fi + start sensors + fi +} + +start_battery_monitor() +{ + chown -h root.system /sys/module/pm8921_bms/parameters/* + chmod -h 0660 /sys/module/pm8921_bms/parameters/* + mkdir -p /data/bms + chown -h root.system /data/bms + chmod -h 0770 /data/bms + start battery_monitor +} + +baseband=`getprop ro.baseband` +izat_premium_enablement=`getprop ro.qc.sdk.izat.premium_enabled` + +# +# Suppress default route installation during RA for IPV6; user space will take +# care of this +# exception default ifc +for file in /proc/sys/net/ipv6/conf/* +do + echo 0 > $file/accept_ra_defrtr +done +echo 1 > /proc/sys/net/ipv6/conf/default/accept_ra_defrtr + +# +# Start gpsone_daemon for SVLTE Type I & II devices +# +case "$target" in + "msm7630_fusion") + start gpsone_daemon +esac +case "$baseband" in + "svlte2a") + start gpsone_daemon + start bridgemgrd + ;; + "sglte" | "sglte2") + start gpsone_daemon + ;; +esac +case "$target" in + "msm7630_surf" | "msm8660" | "msm8960" | "msm8974") + start quipc_igsn +esac +case "$target" in + "msm7630_surf" | "msm8660" | "msm8960" | "msm8974") + start quipc_main +esac + +case "$target" in + "msm8960" | "msm8974") + start location_mq + start lowi-server + if [ "$izat_premium_enablement" -eq 1 ]; then + start xtwifi_inet + start xtwifi_client + fi +esac + +start_sensors + +case "$target" in + "msm7630_surf" | "msm7630_1x" | "msm7630_fusion") + value=`cat /sys/devices/system/soc/soc0/hw_platform` + case "$value" in + "Fluid") + start profiler_daemon;; + esac + ;; + "msm8660" ) + platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform` + case "$platformvalue" in + "Fluid") + start profiler_daemon;; + esac + ;; + "msm8960") + case "$baseband" in + "msm") + start_battery_monitor;; + esac + + platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform` + case "$platformvalue" in + "Fluid") + start profiler_daemon;; + "Liquid") + start profiler_daemon;; + esac + ;; +esac diff --git a/kernel_image/init.qcom.syspart_fixup.sh b/kernel_image/init.qcom.syspart_fixup.sh new file mode 100755 index 0000000..c2784bf --- /dev/null +++ b/kernel_image/init.qcom.syspart_fixup.sh @@ -0,0 +1,75 @@ +#!/system/bin/sh +# Copyright (c) 2012, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +target="$1" +serial="$2" + +# No path is set up at this point so we have to do it here. +PATH=/sbin:/system/sbin:/system/bin:/system/xbin +export PATH + +mount_needed=false; + +if [ ! -f /system/etc/boot_fixup ];then +# This should be the first command +# remount system as read-write. + mount -o rw,remount,barrier=1 /system + mount_needed=true; +fi + +# **** WARNING ***** +# This runs in a single-threaded, critical path portion +# of the Android bootup sequence. This is to guarantee +# all necessary system partition fixups are done before +# the rest of the system starts up. Run any non- +# timing critical tasks in a separate process to +# prevent slowdown at boot. + +# Run modem link script +if [ -f /system/etc/init.qcom.modem_links.sh ]; then + /system/bin/sh /system/etc/init.qcom.modem_links.sh +fi + +# Run mdm link script +if [ -f /system/etc/init.qcom.mdm_links.sh ]; then + /system/bin/sh /system/etc/init.qcom.mdm_links.sh +fi + +# Run wifi script +if [ -f /system/etc/init.qcom.wifi.sh ]; then + /system/bin/sh /system/etc/init.qcom.wifi.sh "$target" "$serial" +fi + +touch /system/etc/boot_fixup + +if $mount_needed ;then +# This should be the last command +# remount system as read-only. + mount -o ro,remount,barrier=1 /system +fi + diff --git a/kernel_image/init.qcom.usb.rc b/kernel_image/init.qcom.usb.rc new file mode 100755 index 0000000..3aa3f49 --- /dev/null +++ b/kernel_image/init.qcom.usb.rc @@ -0,0 +1,749 @@ +# Copyright (c) 2011-2012, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +on init + write /sys/class/android_usb/android0/f_rndis/wceis 1 + chown system system /sys/class/android_usb/android0/terminal_version + chmod 0660 /sys/class/android_usb/android0/terminal_version + +service qcom-usb-sh /system/bin/sh /init.qcom.usb.sh + class core + user root + oneshot + +# This should only be used during device bringup +on property:sys.usb.config=mtp,diag,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6860 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/functions mtp,diag,adb + write /sys/module/ci13xxx_msm/parameters/streaming 1 + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# USB Composite for Samsung USB Driver +on property:sys.usb.config=mtp,conn_gadget + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6860 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions mtp,acm,conn_gadget + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mtp,conn_gadget,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6860 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions mtp,acm,conn_gadget,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mtp + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6860 + write /sys/class/android_usb/android0/f_acm/acm_transports tty + write /sys/class/android_usb/android0/functions mtp,acm + write /sys/module/ci13xxx_msm/parameters/streaming 1 + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mtp,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6860 + write /sys/class/android_usb/android0/f_acm/acm_transports tty + write /sys/class/android_usb/android0/functions mtp,acm,adb + write /sys/module/ci13xxx_msm/parameters/streaming 1 + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=ptp + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6865 + write /sys/class/android_usb/android0/functions ptp + write /sys/module/ci13xxx_msm/parameters/streaming 1 + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=ptp,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6866 + write /sys/class/android_usb/android0/functions ptp,adb + write /sys/module/ci13xxx_msm/parameters/streaming 1 + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=rndis + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6863 + write /sys/class/android_usb/android0/functions rndis + write /sys/class/android_usb/android0/bDeviceClass 224 + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=rndis,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6864 + write /sys/class/android_usb/android0/functions rndis,adb + write /sys/class/android_usb/android0/bDeviceClass 224 + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=ncm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 685D + write /sys/class/android_usb/android0/functions ncm + write /sys/class/android_usb/android0/bDeviceClass 2 + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=ncm,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 685D + write /sys/class/android_usb/android0/functions ncm,adb + write /sys/class/android_usb/android0/bDeviceClass 2 + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# rndis,acm,diag and rmnet,acm,diag are used for IOT Hidden Menu +on property:sys.usb.config=rndis,acm,diag + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6864 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_acm/acm_transports tty + write /sys/class/android_usb/android0/functions rndis,acm,diag + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=rmnet,acm,diag + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 685D + write /sys/class/android_usb/android0/f_rmnet/transports smd,bam + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_acm/acm_transports tty + write /sys/class/android_usb/android0/functions rmnet,acm,diag + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,acm,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 685D + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_acm/acm_transports tty + write /sys/class/android_usb/android0/functions diag,acm,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# For CDFS composite +on property:sys.usb.config=mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 685B + write /sys/class/android_usb/android0/functions mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 685E + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions mass_storage,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mass_storage,mtp + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6860 + write /sys/class/android_usb/android0/functions mtp,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mass_storage,mtp,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6860 + write /sys/class/android_usb/android0/functions mtp,mass_storage,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mass_storage,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 685E + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions acm,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mass_storage,acm,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 685E + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions acm,mass_storage,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mass_storage,acm,mtp + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6860 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions mtp,acm,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mass_storage,acm,mtp,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 04E8 + write /sys/class/android_usb/android0/idProduct 6860 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions mtp,acm,mass_storage,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# USB compositions +#on property:sys.usb.config=diag,adb +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 05C6 +# write /sys/class/android_usb/android0/idProduct 901D +# write /sys/class/android_usb/android0/f_diag/clients diag +# write /sys/class/android_usb/android0/functions diag,adb +# write /sys/class/android_usb/android0/enable 1 +# start adbd +# setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9025 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd,tty + write /sys/class/android_usb/android0/f_rmnet/transports smd,bam + write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_bam,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 903D + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty + write /sys/class/android_usb/android0/f_rmnet/transports smd,bam + write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet,mass_storage + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_bam,mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9026 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd,tty + write /sys/class/android_usb/android0/f_rmnet/transports smd,bam + write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_bam,mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 903E + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty + write /sys/class/android_usb/android0/f_rmnet/transports smd,bam + write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_smd,rmnet_smd_sdio,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9037 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_serial/transports sdio,smd + write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_smd_sdio,mass_storage + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,acm_sdio,acm_smd,rmnet_smd_sdio,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 903B + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_acm/acm_transports sdio,smd + write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet_smd_sdio,mass_storage + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_smd,rmnet_smd_sdio,mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9038 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_serial/transports sdio,smd + write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd_sdio,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,acm_sdio,acm_smd,rmnet_smd_sdio,mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 903C + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_acm/acm_transports sdio,smd + write /sys/class/android_usb/android0/functions diag,acm,rmnet_smd_sdio,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_tty,rmnet_sdio,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9031 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_serial/transports sdio,tty + write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_sdio,mass_storage + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,acm_sdio,acm_tty,rmnet_sdio,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 903B + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_acm/acm_transports sdio,tty + write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet_sdio,mass_storage + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_tty,rmnet_sdio,mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9032 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_serial/transports sdio,tty + write /sys/class/android_usb/android0/functions diag,serial,rmnet_sdio,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,acm_sdio,acm_tty,rmnet_sdio,mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 903C + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_acm/acm_transports sdio,tty + write /sys/class/android_usb/android0/functions diag,acm,rmnet_sdio,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_tty,serial_tty,rmnet_smd,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9025 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports tty,tty + write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_smd,mass_storage + write /sys/class/android_usb/android0/enable 1 + start adbd + start port-bridge + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,acm_tty,acm_tty,rmnet_smd,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 903D + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_acm/acm_transports tty,tty + write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet_smd,mass_storage + write /sys/class/android_usb/android0/enable 1 + start adbd + start port-bridge + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_tty,serial_tty,rmnet_smd,mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9026 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports tty,tty + write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage + write /sys/class/android_usb/android0/enable 1 + start port-bridge + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,acm_tty,acm_tty,rmnet_smd,mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 903E + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_acm/acm_transports tty,tty + write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_smd,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9025 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd,tty + write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_smd,mass_storage + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_smd,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 903D + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty + write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet_smd,mass_storage + write /sys/class/android_usb/android0/enable 1 + start adbd + start port-bridge + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_smd,mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9026 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd,tty + write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_smd,mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 903E + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty + write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# Fusion 3 composition +on property:sys.usb.config=diag,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9025 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports hsic,tty + write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic + write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# Fusion 3 composition with diag_mdm and adb +on property:sys.usb.config=diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9031 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_serial/transports hsic,tty + write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic + write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# Fusion 3 composition with diag_mdm +on property:sys.usb.config=diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9032 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_serial/transports hsic,tty + write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic + write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# Fusion 3 DSDA composition with adb +on property:sys.usb.config=diag,diag_mdm,diag_qsc,serial_hsic,serial_hsuart,rmnet_hsic,rmnet_hsuart,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9065 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc + write /sys/class/android_usb/android0/f_serial/transports hsic,hsuart + write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsuart,hsuart + write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# Fusion 3 composition without adb +on property:sys.usb.config=diag,diag_mdm,diag_qsc,serial_hsic,serial_hsuart,rmnet_hsic,rmnet_hsuart,mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9066 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc + write /sys/class/android_usb/android0/f_serial/transports hsic,hsuart + write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsuart,hsuart + write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# Fusion 2.2 composition with diag_qsc and adb +on property:sys.usb.config=diag,diag_qsc,serial_smd,serial_tty,serial_hsuart,rmnet_hsuart,mass_storage,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9053 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_qsc + write /sys/class/android_usb/android0/f_serial/transports smd,tty,hsuart + write /sys/class/android_usb/android0/f_rmnet/transports smd,bam,hsuart,hsuart + write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# Fusion 2.2 composition with diag_qsc +on property:sys.usb.config=diag,diag_qsc,serial_smd,serial_tty,serial_hsuart,rmnet_hsuart,mass_storage + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9054 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_qsc + write /sys/class/android_usb/android0/f_serial/transports smd,tty,hsuart + write /sys/class/android_usb/android0/f_rmnet/transports smd,bam,hsuart,hsuart + write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#on property:sys.usb.config=rndis +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 05C6 +# write /sys/class/android_usb/android0/idProduct F00E +# write /sys/class/android_usb/android0/functions rndis +# write /sys/class/android_usb/android0/enable 1 +# setprop sys.usb.state ${sys.usb.config} + +#on property:sys.usb.config=rndis,adb +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 05C6 +# write /sys/class/android_usb/android0/idProduct 9024 +# write /sys/class/android_usb/android0/functions rndis,adb +# write /sys/class/android_usb/android0/enable 1 +# start adbd +# setprop sys.usb.state ${sys.usb.config} + +#on property:sys.usb.config=rndis,diag +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 05C6 +# write /sys/class/android_usb/android0/idProduct 902C +# write /sys/class/android_usb/android0/f_diag/clients diag +# write /sys/class/android_usb/android0/functions rndis,diag +# write /sys/class/android_usb/android0/enable 1 +# setprop sys.usb.state ${sys.usb.config} + +#on property:sys.usb.config=rndis,diag,adb +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 05C6 +# write /sys/class/android_usb/android0/idProduct 902D +# write /sys/class/android_usb/android0/f_diag/clients diag +# write /sys/class/android_usb/android0/functions rndis,diag,adb +# write /sys/class/android_usb/android0/enable 1 +# start adbd +# setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=rndis,diag,diag_mdm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9041 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/functions rndis,diag + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=rndis,diag,diag_mdm,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9042 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/functions rndis,diag,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#on property:sys.usb.config=ptp +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 05C6 +# write /sys/class/android_usb/android0/idProduct 904D +# write /sys/class/android_usb/android0/functions ptp +# write /sys/class/android_usb/android0/enable 1 +# setprop sys.usb.state ${sys.usb.config} + +#on property:sys.usb.config=ptp,adb +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 05C6 +# write /sys/class/android_usb/android0/idProduct 904E +# write /sys/class/android_usb/android0/functions ptp,adb +# write /sys/class/android_usb/android0/enable 1 +# start adbd +# setprop sys.usb.state ${sys.usb.config} + +#on property:sys.usb.config=mtp +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 05C6 +# write /sys/class/android_usb/android0/idProduct F003 +# write /sys/class/android_usb/android0/functions mtp +# write /sys/class/android_usb/android0/enable 1 +# setprop sys.usb.state ${sys.usb.config} + +#on property:sys.usb.config=mtp,adb +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 05C6 +# write /sys/class/android_usb/android0/idProduct 9039 +# write /sys/class/android_usb/android0/functions mtp,adb +# write /sys/class/android_usb/android0/enable 1 +# start adbd +# setprop sys.usb.state ${sys.usb.config} + +#on property:sys.usb.config=mtp,diag +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 05C6 +# write /sys/class/android_usb/android0/idProduct 901B +# write /sys/class/android_usb/android0/f_diag/clients diag +# write /sys/class/android_usb/android0/functions mtp,diag +# write /sys/class/android_usb/android0/enable 1 +# setprop sys.usb.state ${sys.usb.config} + +#on property:sys.usb.config=mtp,diag,adb +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 05C6 +# write /sys/class/android_usb/android0/idProduct 903A +# write /sys/class/android_usb/android0/f_diag/clients diag +# write /sys/class/android_usb/android0/functions mtp,diag,adb +# write /sys/class/android_usb/android0/enable 1 +# start adbd +# setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mtp,diag,diag_mdm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9040 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/functions mtp,diag + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mtp,diag,diag_mdm,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 903F + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/functions mtp,diag,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,ccid + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9045 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/functions diag,ccid + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,diag_mdm,ccid,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9044 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/functions diag,adb,ccid + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#on property:sys.usb.config=mass_storage,adb +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 05C6 +# write /sys/class/android_usb/android0/idProduct 9015 +# write /sys/class/android_usb/android0/functions adb,mass_storage +# write /sys/class/android_usb/android0/enable 1 +# start adbd +# setprop sys.usb.state ${sys.usb.config} + +#Mass-storage only composition +#on property:sys.usb.config=mass_storage +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 05C6 +# write /sys/class/android_usb/android0/idProduct F000 +# write /sys/class/android_usb/android0/functions mass_storage +# write /sys/class/android_usb/android0/enable 1 +# setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,qdss + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 904A + write /sys/class/android_usb/android0/functions diag,qdss + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,qdss,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9060 + write /sys/class/android_usb/android0/functions diag,qdss,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} diff --git a/kernel_image/init.qcom.usb.sh b/kernel_image/init.qcom.usb.sh new file mode 100755 index 0000000..a94d0fc --- /dev/null +++ b/kernel_image/init.qcom.usb.sh @@ -0,0 +1,202 @@ +#!/system/bin/sh +# Copyright (c) 2012, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of The Linux Foundation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# +# Update USB serial number from persist storage if present, if not update +# with value passed from kernel command line, if none of these values are +# set then use the default value. This order is needed as for devices which +# do not have unique serial number. +# User needs to set unique usb serial number to persist.usb.serialno +# +serialno=`getprop persist.usb.serialno` +case "$serialno" in + "") + serialnum=`getprop ro.serialno` + case "$serialnum" in + "");; #Do nothing, use default serial number + *) + echo "$serialnum" > /sys/class/android_usb/android0/iSerial + esac + ;; + *) + echo "$serialno" > /sys/class/android_usb/android0/iSerial +esac + +chown -h root.system /sys/devices/platform/msm_hsusb/gadget/wakeup +chmod -h 220 /sys/devices/platform/msm_hsusb/gadget/wakeup + +# +# Allow persistent usb charging disabling +# User needs to set usb charging disabled in persist.usb.chgdisabled +# +target=`getprop ro.board.platform` +usbchgdisabled=`getprop persist.usb.chgdisabled` +case "$usbchgdisabled" in + "") ;; #Do nothing here + * ) + case $target in + "msm8660") + echo "$usbchgdisabled" > /sys/module/pmic8058_charger/parameters/disabled + echo "$usbchgdisabled" > /sys/module/smb137b/parameters/disabled + ;; + "msm8960") + echo "$usbchgdisabled" > /sys/module/pm8921_charger/parameters/disabled + ;; + esac +esac + +usbcurrentlimit=`getprop persist.usb.currentlimit` +case "$usbcurrentlimit" in + "") ;; #Do nothing here + * ) + case $target in + "msm8960") + echo "$usbcurrentlimit" > /sys/module/pm8921_charger/parameters/usb_max_current + ;; + esac +esac +# +# Allow USB enumeration with default PID/VID +# +baseband=`getprop ro.baseband` +echo 1 > /sys/class/android_usb/f_mass_storage/lun/nofua +usb_config=`getprop persist.sys.usb.config` +case "$usb_config" in + "" | "adb") #USB persist config not set, select default configuration + case $target in + "apq8064" | "fusion3") + setprop persist.sys.usb.config mtp + ;; + "msm8960" | "msm8974") + case "$baseband" in + "mdm") +# setprop persist.sys.usb.config diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb + setprop persist.sys.usb.config mtp + ;; + "sglte") +# setprop persist.sys.usb.config diag,diag_mdm,serial_smd,serial_tty,serial_hsuart,rmnet_hsuart,mass_storage,adb + setprop persist.sys.usb.config mtp + ;; + *) +# setprop persist.sys.usb.config diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb + setprop persist.sys.usb.config mtp + ;; + esac + ;; + "msm7627a") + setprop persist.sys.usb.config diag,serial_smd,serial_tty,rmnet_smd,mass_storage,adb + ;; + * ) + case "$baseband" in + "svlte2a") + setprop persist.sys.usb.config diag,diag_mdm,serial_sdio,serial_smd,rmnet_smd_sdio,mass_storage,adb + ;; + "csfb") + setprop persist.sys.usb.config diag,diag_mdm,serial_sdio,serial_tty,rmnet_sdio,mass_storage,adb + ;; + *) + setprop persist.sys.usb.config diag,serial_tty,serial_tty,rmnet_smd,mass_storage,adb + ;; + esac + ;; + esac + ;; + * ) ;; #USB persist config exists, do nothing +esac + +# +# Add support for exposing lun0 as cdrom in mass-storage +# +target=`getprop ro.product.device` +cdromname="/system/etc/cdrom_install.iso" +cdromenable=`getprop persist.service.cdrom.enable` +case "$target" in + "msm7627a") + case "$cdromenable" in + 0) + echo "" > /sys/class/android_usb/android0/f_mass_storage/lun0/file + ;; + 1) + echo "mounting usbcdrom lun" + echo $cdromname > /sys/class/android_usb/android0/f_mass_storage/lun0/file + ;; + esac + ;; +esac + +# +# Select USB BAM - 2.0 or 3.0 +# +case "$target" in + "msm8974") + echo hsusb > /sys/bus/platform/devices/usb_bam/enable + ;; +esac + +# +# set module params for embedded rmnet devices +# +rmnetmux=`getprop persist.rmnet.mux` +case "$baseband" in + "mdm" | "dsda" | "sglte2") + case "$rmnetmux" in + "enabled") + echo 1 > /sys/module/rmnet_usb/parameters/mux_enabled + echo 8 > /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links + echo 17 > /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev + ;; + esac + echo 1 > /sys/module/rmnet_usb/parameters/rmnet_data_init + # Allow QMUX daemon to assign port open wait time + chown -h radio.radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait + ;; + "dsda2") + echo 2 > /sys/module/rmnet_usb/parameters/no_rmnet_devs + echo hsicctl,hsusbctl > /sys/module/rmnet_usb/parameters/rmnet_dev_names + case "$rmnetmux" in + "enabled") #mux is neabled on both mdms + echo 3 > /sys/module/rmnet_usb/parameters/mux_enabled + echo 8 > /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links + echo 17 > write /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev + ;; + "enabled_hsic") #mux is enabled on hsic mdm + echo 1 > /sys/module/rmnet_usb/parameters/mux_enabled + echo 8 > /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links + echo 17 > /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev + ;; + "enabled_hsusb") #mux is enabled on hsusb mdm + echo 2 > /sys/module/rmnet_usb/parameters/mux_enabled + echo 8 > /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links + echo 17 > /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev + ;; + esac + echo 1 > /sys/module/rmnet_usb/parameters/rmnet_data_init + # Allow QMUX daemon to assign port open wait time + chown -h radio.radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait + ;; +esac diff --git a/kernel_image/init.rc b/kernel_image/init.rc new file mode 100755 index 0000000..02b00b0 --- /dev/null +++ b/kernel_image/init.rc @@ -0,0 +1,1156 @@ +# Copyright (c) 2013, The Linux Foundation. All rights reserved. +# Not a Contribution. +# +# Copyright (C) 2012 The Android Open Source Project +# +# IMPORTANT: Do not create world writable files or directories. +# This is a common source of Android security bugs. +# + +import /init.environ.rc +import /init.usb.rc +import /init.${ro.hardware}.rc +import /init.trace.rc +import /init.carrier.rc +import /init.container.rc + +on early-init + # Set init and its forked children's oom_adj. + write /proc/1/oom_adj -16 + + # Set the security context for the init process. + # This should occur before anything else (e.g. ueventd) is started. + setcon u:r:init:s0 + + start ueventd + +# Configure SEAndroid booleans and enforcing mode + setsebool debugfs 1 + +# create mountpoints + mkdir /mnt 0775 root system + +on init + +sysclktz 0 + +loglevel 3 + +# Vibetonz + export VIBE_PIPE_PATH /dev/pipes + mkdir /dev/pipes 0771 vibe vibe + restorecon /dev/pipes +# for audit message + chown system system /proc/avc_msg + chmod 0660 /proc/avc_msg + +# Backward compatibility + symlink /system/etc /etc + symlink /sys/kernel/debug /d + +# Right now vendor lives on the same filesystem as system, +# but someday that may change. + symlink /system/vendor /vendor + +# Create cgroup mount point for cpu accounting + mkdir /acct + mount cgroup none /acct cpuacct + mkdir /acct/uid + +# Create cgroup mount point for memory + mount tmpfs none /sys/fs/cgroup mode=0750,uid=0,gid=1000 + mkdir /sys/fs/cgroup/memory 0750 root system + mount cgroup none /sys/fs/cgroup/memory memory + write /sys/fs/cgroup/memory/memory.move_charge_at_immigrate 1 + chown root system /sys/fs/cgroup/memory/tasks + chmod 0660 /sys/fs/cgroup/memory/tasks + mkdir /sys/fs/cgroup/memory/sw 0750 root system + write /sys/fs/cgroup/memory/sw/memory.swappiness 100 + write /sys/fs/cgroup/memory/sw/memory.move_charge_at_immigrate 1 + chown root system /sys/fs/cgroup/memory/sw/tasks + chmod 0660 /sys/fs/cgroup/memory/sw/tasks + + mkdir /system + mkdir /data 0771 system system + mkdir /cache 0770 system cache + mkdir /config 0500 root root + mkdir /efs 0771 system radio + + # See storage config details at http://source.android.com/tech/storage/ + mkdir /mnt/shell 0750 shell shell + mkdir /mnt/media_rw 0700 media_rw media_rw + mkdir /storage 0751 root sdcard_r + + # Directory for putting things only root should see. + mkdir /mnt/secure 0700 root root + # Create private mountpoint so we can MS_MOVE from staging + mount tmpfs tmpfs /mnt/secure mode=0700,uid=0,gid=0 + + # Directory for staging bindmounts + mkdir /mnt/secure/staging 0700 root root + restorecon -R /mnt/secure/staging + + # Directory-target for where the secure container + # imagefile directory will be bind-mounted + mkdir /mnt/secure/asec 0700 root root + mount tmpfs tmpfs /mnt/secure/asec mode=0700,uid=0,gid=0 + restorecon -R /mnt/secure/asec + + # Secure container public mount points. + mkdir /mnt/asec 0700 root system + mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000 + restorecon -R /mnt/asec + + # Filesystem image public mount points. + mkdir /mnt/obb 0700 root system + mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000 + restorecon -R /mnt/obb + + write /proc/sys/kernel/panic_on_oops 1 + write /proc/sys/kernel/hung_task_timeout_secs 0 + write /proc/cpu/alignment 4 + write /proc/sys/kernel/sched_latency_ns 10000000 + write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000 + write /proc/sys/kernel/sched_compat_yield 1 + write /proc/sys/kernel/sched_child_runs_first 0 + write /proc/sys/kernel/randomize_va_space 2 + write /proc/sys/kernel/kptr_restrict 2 + write /proc/sys/kernel/dmesg_restrict 1 + write /proc/sys/vm/mmap_min_addr 32768 + write /proc/sys/net/ipv4/ping_group_range "0 2147483647" + write /proc/sys/kernel/sched_rt_runtime_us 950000 + write /proc/sys/kernel/sched_rt_period_us 1000000 + +# Create cgroup mount points for process groups + mkdir /dev/cpuctl + mount cgroup none /dev/cpuctl cpu + chown system system /dev/cpuctl + chown system system /dev/cpuctl/tasks + chmod 0660 /dev/cpuctl/tasks + write /dev/cpuctl/cpu.shares 1024 + write /dev/cpuctl/cpu.rt_runtime_us 950000 + write /dev/cpuctl/cpu.rt_period_us 1000000 + + mkdir /dev/cpuctl/apps + chown system system /dev/cpuctl/apps/tasks + chmod 0666 /dev/cpuctl/apps/tasks + write /dev/cpuctl/apps/cpu.shares 1024 + write /dev/cpuctl/apps/cpu.rt_runtime_us 800000 + write /dev/cpuctl/apps/cpu.rt_period_us 1000000 + + mkdir /dev/cpuctl/apps/bg_non_interactive + chown system system /dev/cpuctl/apps/bg_non_interactive/tasks + chmod 0666 /dev/cpuctl/apps/bg_non_interactive/tasks + # 5.0 % + write /dev/cpuctl/apps/bg_non_interactive/cpu.shares 52 + write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_runtime_us 700000 + write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_period_us 1000000 + +# qtaguid will limit access to specific data based on group memberships. +# net_bw_acct grants impersonation of socket owners. +# net_bw_stats grants access to other apps' detailed tagged-socket stats. + chown root net_bw_acct /proc/net/xt_qtaguid/ctrl + chown root net_bw_stats /proc/net/xt_qtaguid/stats + +# Allow everybody to read the xt_qtaguid resource tracking misc dev. +# This is needed by any process that uses socket tagging. + chmod 0644 /dev/xt_qtaguid + +# Create location for fs_mgr to store abbreviated output from filesystem +# checker programs. + mkdir /dev/fscklogs 0770 root system + +# To sync between sdcard & installd + setprop installd.sdcard_manipulate_done 0 + +on post-fs + # once everything is setup, no need to modify / + mount rootfs rootfs / ro remount + # mount shared so changes propagate into child namespaces + mount rootfs rootfs / shared rec + mount tmpfs tmpfs /mnt/secure private rec + mount tmpfs tmpfs /mnt/secure/asec shared rec + + # We chown/chmod /cache again so because mount is run as root + defaults + chown system cache /cache + chmod 0770 /cache + # We restorecon /cache in case the cache partition has been reset. + restorecon /cache + + # This may have been created by the recovery system with odd permissions + chown system cache /cache/recovery + chmod 0770 /cache/recovery + # This may have been created by the recovery system with the wrong context. + restorecon /cache/recovery + + #change permissions on vmallocinfo so we can grab it from bugreports + chown root log /proc/vmallocinfo + chmod 0440 /proc/vmallocinfo + + chown root log /proc/slabinfo + chmod 0440 /proc/slabinfo + + #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks + chown root system /proc/kmsg + chmod 0440 /proc/kmsg + chown root system /proc/sysrq-trigger + chmod 0220 /proc/sysrq-trigger + chown system log /proc/last_kmsg + chmod 0440 /proc/last_kmsg + + # create the lost+found directories, so as to enforce our permissions + mkdir /cache/lost+found 0770 root root + restorecon /cache/lost+found + +on post-fs-data + # Reload SE Android Policy + setprop selinux.reload_policy 1 + + # We chown/chmod /data again so because mount is run as root + defaults + chown system system /data + chmod 0771 /data + # We restorecon /data in case the userdata partition has been reset. + restorecon /data + + # Avoid predictable entropy pool. Carry over entropy from previous boot. + copy /data/system/entropy.dat /dev/urandom + + # Create dump dir and collect dumps. + # Do this before we mount cache so eventually we can use cache for + # storing dumps on platforms which do not have a dedicated dump partition. + mkdir /data/dontpanic 0750 root log + + # Collect apanic data, free resources and re-arm trigger + copy /proc/apanic_console /data/dontpanic/apanic_console + chown root log /data/dontpanic/apanic_console + chmod 0640 /data/dontpanic/apanic_console + + copy /proc/apanic_threads /data/dontpanic/apanic_threads + chown root log /data/dontpanic/apanic_threads + chmod 0640 /data/dontpanic/apanic_threads + + write /proc/apanic_console 1 + + # create basic filesystem structure + mkdir /data/misc 01771 system misc + mkdir /data/misc/audit 02775 audit system + mkdir /data/misc/adb 02750 system shell + mkdir /data/misc/bluedroid 0770 bluetooth net_bt_stack + mkdir /data/misc/bluetooth 0770 system system + mkdir /data/misc/keystore 0700 keystore keystore + mkdir /data/misc/keychain 0771 system system + mkdir /data/misc/radio 0771 system radio + mkdir /data/misc/sms 0770 system radio + mkdir /data/misc/zoneinfo 0775 system system + mkdir /data/misc/vpn 0770 system vpn + mkdir /data/misc/systemkeys 0700 system system + # give system access to wpa_supplicant.conf for backup and restore + mkdir /data/misc/wifi 0770 wifi wifi + chmod 0660 /data/misc/wifi/wpa_supplicant.conf + mkdir /data/local 0751 root root + mkdir /data/misc/media 0700 media media + + # icd + check_icd + chown system system /dev/icd + chmod 0644 /dev/icd + chown system system /dev/icdr + chmod 0644 /dev/icdr + chown system system /dev/tzic + + #SideSync + chown system system /dev/android_ssusbcon + chmod 0660 /dev/android_ssusbcon + + # For security reasons, /data/local/tmp should always be empty. + # Do not place files or directories in /data/local/tmp + mkdir /data/local/tmp 0771 shell shell + mkdir /data/data 0771 system system + mkdir /data/app-private 0771 system system + mkdir /data/app-asec 0700 root root + mkdir /data/app-lib 0771 system system + mkdir /data/app 0771 system system + mkdir /data/property 0700 root root + mkdir /data/ssh 0750 root shell + mkdir /data/ssh/empty 0700 root root + mkdir /data/system 0775 system system + mkdir /data/system/container 0700 system system + restorecon -R /data/system + + # SA, System SW, SAMSUNG create log directory + mkdir /data/log 0775 system log + chown system log /data/log + mkdir /data/anr 0775 system system + chown system system /data/anr + chmod 0775 /data/log + chmod 0775 /data/anr + restorecon /data/log + restorecon /data/anr + + # create dalvik-cache, so as to enforce our permissions + mkdir /data/dalvik-cache 0771 system system + + # create resource-cache and double-check the perms + mkdir /data/resource-cache 0771 system system + chown system system /data/resource-cache + chmod 0771 /data/resource-cache + + # create the lost+found directories, so as to enforce our permissions + mkdir /data/lost+found 0770 root root + restorecon /data/lost+found + + # create directory for DRM plug-ins - give drm the read/write access to + # the following directory. + mkdir /data/drm 0770 drm drm + + # create directory for MediaDrm plug-ins - give drm the read/write access to + # the following directory. + mkdir /data/mediadrm 0770 mediadrm mediadrm + +# DRK permission + mkdir /efs/prov_data 700 system system + mkdir /efs/prov 0770 radio system + chown radio system /efs/prov/libdevkm.lock + chmod 0660 /efs/prov/libdevkm.lock + +#drm permission + mkdir /efs/drm 0774 drm system + +#h2k permission + chmod 0644 /efs/redata.bin + chown radio radio /efs/h2k.dat + chmod 0644 /efs/h2k.dat + chown system system /efs/drm/h2k + +# [ SEC_MM_DRM + # sdrm + mkdir /efs/drm 0774 drm system + mkdir /efs/drm/sdrm 0774 drm system + mkdir /efs/drm/sdrm/data_agent 0774 drm system + mkdir /efs/drm/playready 0775 drm system + restorecon /efs/drm + restorecon /efs/drm/sdrm + restorecon /efs/drm/data_agent + + # DRM directory creation + mkdir /system/etc/security/.drm 0775 + chown root root /system/etc/security/.drm + chmod 0775 /system/etc/security/.drm + + # Added for Playready DRM Support + mkdir /data/data/.drm 0775 + chown drm system /data/data/.drm + chmod 0775 /data/data/.drm + mkdir /data/data/.drm/.playready 0775 + chown drm system /data/data/.drm/.playready + chmod 0775 /data/data/.drm/.playready + + # Added drm folder to copy drm plugins + mkdir /system/lib/drm 0775 + chown root root /system/lib/drm + chmod 0775 /system/lib/drm + + # DivX DRM + mkdir /efs/.files 0775 + mkdir /efs/.files/.dx1 0775 + mkdir /efs/.files/.dm33 0775 + mkdir /efs/.files/.mp301 0775 + chown media system /efs/.files/.dx1 + chown media system /efs/.files/.dm33 + chown media system /efs/.files/.mp301 + chmod 0775 /efs/.files/.dx1 + chmod 0775 /efs/.files/.dm33 + chmod 0775 /efs/.files/.mp301 + + restorecon -R /efs +# ] + + # MTP device permission + chmod 0660 /dev/usb_mtp_gadget + chown system mtp /dev/usb_mtp_gadget + mkdir /dev/socket/mtp 0770 system mtp + + # symlink to bugreport storage location + symlink /data/data/com.android.shell/files/bugreports /data/bugreports + + # Separate location for storing security policy files on data + mkdir /data/security 0700 system system + mkdir /data/security/spota 0700 system system + mkdir /data/security/booleans 0711 system system + mkdir /data/security/good 0700 system system + mkdir /data/security/stig 0700 system system + mkdir /data/security/booleans 0711 system system + mkdir /data/security/mycontainer 0700 system system + + # If there is no fs-post-data action in the init..rc file, you + # must uncomment this line, otherwise encrypted filesystems + # won't work. + # Set indication (checked by vold) that we have finished this action + #setprop vold.post_fs_data_done 1 + +# Permissions for Camera + chown system radio /sys/class/camera/rear/rear_camfw + chown system radio /sys/class/camera/rear/rear_camtype + chown system media_rw /sys/class/camera/rear/rear_checkApp + chown system radio /sys/class/camera/flash/rear_flash + chmod 664 /sys/class/camera/flash/rear_flash +#D2 Assistive Light - Start + chown system radio /sys/class/camera/rear/rear_flash + chmod 664 /sys/class/camera/rear/rear_flash +#D2 Assistive Light - End + chown system radio /sys/class/camera/front/front_camfw + chown system radio /sys/class/camera/front/front_camtype + +# Permissions for svc led + chown system system /sys/class/sec/led/led_r + chown system system /sys/class/sec/led/led_g + chown system system /sys/class/sec/led/led_b + chown system system /sys/class/sec/led/led_pattern + chown system system /sys/class/sec/led/led_blink + chown system system /sys/class/sec/led/led_lowpower + +on boot + +# reset_reason + chown system system /proc/reset_reason + chmod 0600 /proc/reset_reason + +# Mobicore + mkdir /data/app/mcRegistry 0775 system system + +# Vibetonz + chmod 0660 /dev/tspdrv + chown vibe vibe /dev/tspdrv + +# volume up/down key + chown radio system /sys/class/sec/sec_key/wakeup_keys + +# basic network init + ifup lo + hostname localhost + domainname localdomain + +# set RLIMIT_NICE to allow priorities from 19 to -20 + setrlimit 13 40 40 + +# Memory management. Basic kernel parameters, and allow the high +# level system server to be able to adjust the kernel OOM driver +# parameters to match how it is managing things. + write /proc/sys/vm/overcommit_memory 1 + write /proc/sys/vm/min_free_order_shift 4 + chown root system /sys/module/lowmemorykiller/parameters/adj + chmod 0664 /sys/module/lowmemorykiller/parameters/adj + chown root system /sys/module/lowmemorykiller/parameters/minfree + chmod 0664 /sys/module/lowmemorykiller/parameters/minfree + + # Tweak background writeout + write /proc/sys/vm/dirty_expire_centisecs 200 + write /proc/sys/vm/dirty_background_ratio 5 + + # Permissions for System Server and daemons. + chown radio system /sys/android_power/state + chown radio system /sys/android_power/request_state + chown radio system /sys/android_power/acquire_full_wake_lock + chown radio system /sys/android_power/acquire_partial_wake_lock + chown radio system /sys/android_power/release_wake_lock + chown system system /sys/power/autosleep + chown system system /sys/power/state + chown system system /sys/power/wakeup_count + chown radio system /sys/power/wake_lock + chown radio system /sys/power/wake_unlock + chmod 0660 /sys/power/state + chmod 0660 /sys/power/wake_lock + chmod 0660 /sys/power/wake_unlock + +# SEC DVFS sysfs node + chown radio system /sys/power/cpufreq_max_limit + chown radio system /sys/power/cpufreq_min_limit + chown radio system /sys/power/cpufreq_table + chown radio system /sys/class/kgsl/kgsl-3d0/max_pwrlevel + chown radio system /sys/class/kgsl/kgsl-3d0/min_pwrlevel + chown radio system /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies + chown radio system /sys/class/kgsl/kgsl-3d0/fps + chown radio system /sys/class/kgsl/kgsl-3d0/max_fps + chmod 664 /sys/power/cpufreq_max_limit + chmod 664 /sys/power/cpufreq_min_limit + chmod 664 /sys/power/cpufreq_table + chmod 664 /sys/class/kgsl/kgsl-3d0/max_pwrlevel + chmod 664 /sys/class/kgsl/kgsl-3d0/min_pwrlevel + chmod 664 /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies + + chown radio system /sys/devices/system/cpu/kernel_max + chmod 664 /sys/devices/system/cpu/kernel_max + + chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate + chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_rate + chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_slack + chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_slack + chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time + chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time + chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq + chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq + chown system system /sys/devices/system/cpu/cpufreq/interactive/target_loads + chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/target_loads + chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load + chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load + chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay + chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay + chown system system /sys/devices/system/cpu/cpufreq/interactive/boost + chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boost + chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse + chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost + chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/input_boost + chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration + chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration + chown system system /sys/devices/system/cpu/cpufreq/interactive/io_is_busy + chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/io_is_busy + + # Assume SMP uses shared cpufreq policy for all CPUs + chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + +# MDNIE + chown system system /sys/class/mdnie/mdnie/lcdtype + chown system system /sys/class/mdnie/mdnie/lcd_power + chown system media_rw /sys/class/mdnie/mdnie/scenario + chown system system /sys/class/mdnie/mdnie/tuning + chown system media_rw /sys/class/mdnie/mdnie/outdoor + chown system system /sys/class/mdnie/mdnie/mdnie_temp + chown system system /sys/class/mdnie/mdnie/mode + chown system system /sys/class/mdnie/mdnie/negative + chown system media_rw /sys/class/mdnie/mdnie/playspeed + chown system system /sys/class/lcd/panel/window_type + chown radio system /sys/class/lcd/panel/power_reduce + chown system media_rw /sys/class/mdnie/mdnie/accessibility + chown system system /sys/class/mdnie/mdnie/cabc + chown radio system /sys/class/lcd/panel/siop_enable + chown radio system /sys/class/lcd/panel/temperature + +# Adjust YUV to RGB Conversion + chown system media_rw /sys/class/graphics/fb0/csc_cfg + chmod 0660 /sys/class/graphics/fb0/csc_cfg + +# Dynamic FPS + chown radio system /sys/class/lcd/panel/fps_change + chmod 0664 /sys/class/lcd/panel/fps_change + +# Auto Brightness + chown system system /sys/class/backlight/panel/auto_brightness + chmod 0660 /sys/class/backlight/panel/auto_brightness + +# Permission for Touchscreen, Touchkey. + chown radio system /sys/class/sec/sec_touchkey/touch_sensitivity + chown radio system /sys/class/sec/sec_touchkey/touchkey_firm_update + chown system radio /sys/class/sec/tsp/cmd + chown system radio /sys/class/sec/sec_touchkey/glove_mode + chown system radio /sys/class/sec/sec_touchkey/flip_mode + + chown system system /sys/class/timed_output/vibrator/enable + chown system system /sys/class/leds/keyboard-backlight/brightness + chown system system /sys/class/leds/lcd-backlight/brightness + chown system system /sys/class/leds/button-backlight/brightness + chown system system /sys/class/leds/jogball-backlight/brightness + chown system system /sys/class/leds/red/brightness + chown system system /sys/class/leds/green/brightness + chown system system /sys/class/leds/blue/brightness + chown system system /sys/class/leds/red/device/grpfreq + chown system system /sys/class/leds/red/device/grppwm + chown system system /sys/class/leds/red/device/blink + chown system system /sys/class/timed_output/vibrator/enable + chown system system /sys/module/sco/parameters/disable_esco + chown system system /sys/kernel/ipv4/tcp_wmem_min + chown system system /sys/kernel/ipv4/tcp_wmem_def + chown system system /sys/kernel/ipv4/tcp_wmem_max + chown system system /sys/kernel/ipv4/tcp_rmem_min + chown system system /sys/kernel/ipv4/tcp_rmem_def + chown system system /sys/kernel/ipv4/tcp_rmem_max + chown root radio /proc/cmdline + +# permission for CHARGING + chown system radio /sys/class/power_supply/battery/batt_reset_soc + chown system radio /sys/class/power_supply/battery/update + chown system radio /sys/class/power_supply/battery/factory_mode + chown system radio /sys/class/power_supply/battery/batt_slate_mode + chown sdcard_rw sdcard_rw /sys/class/power_supply/battery/call + chown sdcard_rw sdcard_rw /sys/class/power_supply/battery/video + chown sdcard_rw sdcard_rw /sys/class/power_supply/battery/music + chown sdcard_rw sdcard_rw /sys/class/power_supply/battery/browser + chown sdcard_rw sdcard_rw /sys/class/power_supply/battery/hotspot + chown sdcard_rw sdcard_rw /sys/class/power_supply/battery/camera + chown system radio /sys/class/power_supply/battery/talk_wcdma + chown system radio /sys/class/power_supply/battery/talk_gsm + chown system radio /sys/class/power_supply/battery/call + chown system radio /sys/class/power_supply/battery/data_call + chown system radio /sys/class/power_supply/battery/gps + chown system radio /sys/class/power_supply/battery/wifi + chown system radio /sys/class/power_supply/battery/lte + chown system radio /sys/class/power_supply/battery/wc_enable + chown system radio /sys/class/power_supply/battery/lcd + chown system radio /sys/class/power_supply/battery/batt_temp_table + +# Set these so we can remotely update SELinux policy + chown system system /sys/fs/selinux/load + chown system system /sys/fs/selinux/enforce + +# Permissions for SSRM + chmod 0664 /sys/devices/platform/sec-thermistor/temperature + chmod 0664 /sys/class/power_supply/battery/siop_level + chmod 0664 /sys/class/power_supply/battery/test_charge_current + chown radio system /sys/devices/platform/sec-thermistor/temperature + chown radio system /sys/class/power_supply/battery/siop_level + chown radio system /sys/class/power_supply/battery/test_charge_current + +#OTG Test + chown system radio /sys/class/host_notify/usb_otg/booster + chmod 0660 /sys/class/host_notify/usb_otg/booster + +#FM Radio + chown system audio /dev/fmradio + chmod 660 /dev/fmradio + +#Essential node for usbservice + mkdir /dev/bus/ 755 root root + mkdir /dev/bus/usb 755 root root + +# +# Accelerometer_sensor + chown system radio /sys/class/sensors/accelerometer_sensor/raw_data + chown system radio /sys/class/sensors/accelerometer_sensor/calibration + chown system radio /sys/class/sensors/accelerometer_sensor/reactive_alert + chown system radio /sys/class/sensors/accelerometer_sensor/vendor + chown system radio /sys/class/sensors/accelerometer_sensor/name +# Grip_sensor + chown system radio /sys/class/sensors/grip_sensor/onoff + chown system radio /sys/class/sensors/grip_sensor/calibration + chown system radio /sys/class/sensors/grip_sensor/raw_data + chown system radio /sys/class/sensors/grip_sensor/offset + chown system radio /sys/class/sensors/grip_sensor/threshold + chown system radio /sys/class/sensors/grip_sensor/name + chown system radio /sys/class/sensors/grip_sensor/vendor +# Proximity_sensor + chown system radio /sys/class/sensors/proximity_sensor/state + chown system radio /sys/class/sensors/proximity_sensor/raw_data + chown system radio /sys/class/sensors/proximity_sensor/prox_avg + chown system radio /sys/class/sensors/proximity_sensor/prox_cal + chown system radio /sys/class/sensors/proximity_sensor/vendor + chown system radio /sys/class/sensors/proximity_sensor/name + chown system radio /sys/class/sensors/proximity_sensor/thresh_high + chown system radio /sys/class/sensors/proximity_sensor/thresh_low + chown system radio /sys/class/sensors/proximity_sensor/barcode_emul_en +# Light_sensor + chown system radio /sys/class/sensors/light_sensor/lux + chown system radio /sys/class/sensors/light_sensor/raw_data + chown system radio /sys/class/sensors/light_sensor/vendor + chown system radio /sys/class/sensors/light_sensor/name +# Gyro_sensor + chown system radio /sys/class/sensors/gyro_sensor/power_on + chown system radio /sys/class/sensors/gyro_sensor/power_off + chown system radio /sys/class/sensors/gyro_sensor/temperature + chown system radio /sys/class/sensors/gyro_sensor/selftest + chown system radio /sys/class/sensors/gyro_sensor/selftest_dps + chown system radio /sys/class/sensors/gyro_sensor/vendor + chown system radio /sys/class/sensors/gyro_sensor/name +# Barometer_sensor + chown system radio /sys/class/sensors/barometer_sensor/sea_level_pressure + chown system radio /sys/class/sensors/barometer_sensor/eeprom_check + chown system radio /sys/class/sensors/barometer_sensor/vendor + chown system radio /sys/class/sensors/barometer_sensor/name + chown system radio /sys/class/sensors/barometer_sensor/calibration +# Magnetic_sensor +# chown system radio /dev/akm8963 + chown system radio /sys/class/sensors/magnetic_sensor/raw_data + chown system radio /sys/class/sensors/magnetic_sensor/vendor + chown system radio /sys/class/sensors/magnetic_sensor/name +# uv_sensor + chown system radio /sys/class/sensors/uv_sensor/vendor + chown system radio /sys/class/sensors/uv_sensor/name + chown system radio /sys/class/sensors/uv_sensor/raw_data + chown system radio /sys/class/sensors/uv_sensor/power_on + chown system radio /sys/class/sensors/uv_sensor/power_off +# Temphumidity_sensor + chown system radio /sys/class/sensors/temphumidity_sensor/vendor + chown system radio /sys/class/sensors/temphumidity_sensor/name + chown system radio /sys/class/sensors/temphumidity_sensor/engine_ver + chown system radio /sys/class/sensors/temphumidity_sensor/engine_ver2 + chown system radio /sys/class/sensors/temphumidity_sensor/cp_thm + chown system radio /sys/class/sensors/temphumidity_sensor/send_accuracy +# SensorHub + chown system radio /sys/class/sensors/ssp_sensor/enable + chown system radio /sys/class/sensors/ssp_sensor/enable_irq + chown system radio /sys/class/sensors/ssp_sensor/mcu_rev + chown system radio /sys/class/sensors/ssp_sensor/mcu_name + chown system radio /sys/class/sensors/ssp_sensor/mcu_test + chown system radio /sys/class/sensors/ssp_sensor/mcu_reset + chown system radio /sys/class/sensors/ssp_sensor/mcu_update + chown system radio /sys/class/sensors/ssp_sensor/mcu_sleep_test + chown system radio /sys/class/sensors/ssp_sensor/ori_poll_delay + chown system radio /sys/class/sensors/ssp_sensor/mag_poll_delay + chown system radio /sys/class/sensors/ssp_sensor/temp_humi_poll_delay +# Gesture_sensor + chown system radio /sys/class/sensors/gesture_sensor/ir_current + chown system radio /sys/class/sensors/gesture_sensor/selftest +# Seac Jack + chown media system /sys/class/audio/earjack/reselect_jack +# IrLed + chmod 0660 /dev/ice4_dev + chown system system /dev/ice4_dev + +# NFC_NXP + setprop ro.nfc.port "I2C" + chmod 0600 /dev/pn544 + chown nfc nfc /dev/pn544 + +# NFC_BROADCOM + chmod 0600 /dev/bcm2079x + chown nfc nfc /dev/bcm2079x + mkdir /data/bcmnfc + mkdir /data/bcmnfc/param + chmod 0700 /data/bcmnfc + chmod 0700 /data/bcmnfc/param + chown nfc nfc /data/bcmnfc + chown nfc nfc /data/bcmnfc/param + +# Permissions for Barcode Emul + chown system radio /sys/class/sec/sec_barcode_emul/barcode_send + chown system radio /sys/class/sec/sec_barcode_emul/barcode_ver_check + chown system radio /sys/class/sec/sec_barcode_emul/barcode_led_status + +# IR_LED + chown system radio /sys/class/sec/sec_ir/ir_send + chown system radio /sys/class/sec/sec_ir/ir_send_result + +# Permission for fast dormacy for RIL + chown system radio /sys/devices/virtual/sec/bamdmux/waketime + +# Define TCP buffer sizes for various networks +# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax, + setprop net.tcp.buffersize.default 4096,87380,704512,4096,16384,110208 + setprop net.tcp.buffersize.wifi 524288,1048576,2560000,524288,1048576,2560000 + setprop net.tcp.buffersize.lte 524288,1048576,2560000,524288,1048576,2560000 + setprop net.tcp.buffersize.umts 4094,87380,704512,4096,16384,110208 + setprop net.tcp.buffersize.hspa 4094,87380,704512,4096,16384,262144 + setprop net.tcp.buffersize.hsupa 4094,87380,704512,4096,16384,262144 + setprop net.tcp.buffersize.hsdpa 4094,87380,704512,4096,16384,262144 + setprop net.tcp.buffersize.hspap 4094,87380,1220608,4096,16384,1220608 + setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040 + setprop net.tcp.buffersize.gprs 4092,30000,30000,4096,8760,11680 + setprop net.tcp.buffersize.evdo 4094,87380,262144,4096,16384,262144 + +# Assign TCP buffer thresholds to be ceiling value of technology maximums +# Increased technology maximums should be reflected here. + write /proc/sys/net/core/rmem_max 1048576 + write /proc/sys/net/core/wmem_max 2097152 + + write /sys/block/mmcblk0/queue/scheduler noop + + class_start core + class_start main + +on nonencrypted + class_start late_start + +on charger + mount_all fstab.qcom + class_start charger + write /sys/devices/system/cpu/cpu1/online 1 + write /sys/devices/system/cpu/cpu2/online 1 + write /sys/devices/system/cpu/cpu3/online 1 + write /sys/module/rpm_resources/enable_low_power/L2_cache 1 + write /sys/module/rpm_resources/enable_low_power/pxo 1 + write /sys/module/rpm_resources/enable_low_power/vdd_dig 1 + write /sys/module/rpm_resources/enable_low_power/vdd_mem 1 + write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu2/standalone_power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu3/standalone_power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/idle_enabled 1 + write /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/idle_enabled 1 + write /sys/module/pm_8x60/modes/cpu2/standalone_power_collapse/idle_enabled 1 + write /sys/module/pm_8x60/modes/cpu3/standalone_power_collapse/idle_enabled 1 + write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 0 + write /sys/module/pm_8x60/modes/cpu1/power_collapse/idle_enabled 0 + write /sys/module/pm_8x60/modes/cpu2/power_collapse/idle_enabled 0 + write /sys/module/pm_8x60/modes/cpu3/power_collapse/idle_enabled 0 + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "powersave" + write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "powersave" + write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "powersave" + write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor "powersave" + write /sys/devices/system/cpu/cpu1/online 0 + write /sys/devices/system/cpu/cpu2/online 0 + write /sys/devices/system/cpu/cpu3/online 0 + +on property:vold.decrypt=trigger_reset_main + class_reset main + +on property:vold.decrypt=trigger_load_persist_props + load_persist_props + +on property:vold.decrypt=trigger_post_fs_data + trigger post-fs-data + +on property:vold.decrypt=trigger_restart_min_framework + class_start main + +on property:vold.decrypt=trigger_restart_framework + class_start main + class_start late_start + +on property:vold.decrypt=trigger_shutdown_framework + class_reset late_start + class_reset main + +on property:sys.powerctl=* + powerctl ${sys.powerctl} + +# system server cannot write to /proc/sys files, so proxy it through init +on property:sys.sysctl.extra_free_kbytes=* + write /proc/sys/vm/extra_free_kbytes ${sys.sysctl.extra_free_kbytes} + +## Daemon processes to be run by init. +## +service ueventd /sbin/ueventd + class core + critical + seclabel u:r:ueventd:s0 + +service healthd /sbin/healthd + class core + critical + seclabel u:r:healthd:s0 + +service lpm /system/bin/lpm + class charger + critical + +service healthd-charger /sbin/healthd -n + class charger + critical + seclabel u:r:healthd:s0 + +# Reload SE Android Policy for MDM +on property:persist.security.mdm.policy=1 + setprop selinux.reload_policy 1 + +on property:selinux.reload_policy=1 + chown system system /sys/fs/selinux/enforce + chown -R system system /sys/fs/selinux/booleans + chown system system /sys/fs/selinux/commit_pending_bools + +service console /system/bin/sh + class core + console + disabled + user shell + group log + +## WTL_EDM_START +## EDM AuditLog +service edmaudit /system/bin/edmaudit + class main + user root + +## WTL_EDM_END + +service auditd /system/bin/auditd -k + class main + seclabel u:r:auditd:s0 + disabled + oneshot + +on property:ro.debuggable=1 + start console + +# adbd is controlled via property triggers in init..usb.rc +service adbd /sbin/adbd + class core + socket adbd stream 660 system system + disabled + seclabel u:r:adbd:s0 + +# adbd on at boot in emulator +on property:ro.kernel.qemu=1 + start adbd + +service servicemanager /system/bin/servicemanager + class core + user system + group system + critical + onrestart restart healthd + onrestart restart zygote + onrestart restart media + onrestart restart surfaceflinger + onrestart restart drm + onrestart restart sensorhubservice + onrestart restart TvoutService_C + +service vold /system/bin/vold + class core + socket vold stream 0660 root mount + ioprio be 2 + socket dir_enc_report stream 0660 root mount + socket epm stream 0660 system system + +service netd /system/bin/netd + class main + socket netd stream 0660 root system + socket dnsproxyd stream 0660 root inet + socket mdns stream 0660 root system + +service debuggerd /system/bin/debuggerd + class main + +# icd +service icd /system/bin/icd + class main + user system + group system log + onrestart check_icd + oneshot + +service prepare_param /system/bin/prepare_param.sh /dev/block/platform/msm_sdcc.1/by-name/param + class main + user root + group root + seclabel u:r:prepare_param:s0 + oneshot + +service mobex-daemon /system/bin/npsmobex + class main + user system + group system radio inet sdcard_r sdcard_rw media_rw shell + +service ril-daemon /system/bin/rild + class main + socket rild stream 660 root radio + socket rild-debug stream 660 radio system + user root + group radio cache inet misc audio log qcom_diag + +service secril-daemon /system/bin/sec-ril + class main + user root + group radio cache inet misc audio sdcard_rw diag log + +service DR-daemon /system/bin/ddexe + class main + user root + group system radio inet net_raw + +service SMD-daemon /system/bin/smdexe + class main + user root + group system radio inet net_raw + +service BCS-daemon /system/bin/connfwexe + class main + user root + group system radio inet net_raw + +service SIDESYNC_service /system/bin/ss_conn_daemon + class main + socket ss_conn_daemon stream 0666 system system + user system + group inet net_raw + +service at_distributor /system/bin/at_distributor + class late_start + user root + group radio log + +service diag_uart_log /system/bin/diag_uart_log + class main + user root + group radio + +service surfaceflinger /system/bin/surfaceflinger + class main + user system + group graphics drmrpc + onrestart restart zygote + onrestart restart gsiff_daemon + +service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server + class main + socket zygote stream 660 root system + onrestart write /sys/android_power/request_state wake + onrestart write /sys/power/state on + onrestart restart media + onrestart restart netd + onrestart restart sensorhubservice + onrestart restart gsiff_daemon + +service drm /system/bin/drmserver + class main + user drm +# [ SEC_MM_DRM +# fix + group system drm inet drmrpc sdcard_r sdcard_rw media_rw radio shell +# org +# group drm system inet drmrpc +# ] + +service media /system/bin/mediaserver + class main + user media + group system audio camera inet net_bt net_bt_admin net_bw_acct drmrpc mediadrm sdcard_rw sdcard_r media_rw shell qcom_diag lgt_gid + ioprio rt 4 + +service powersnd /system/bin/samsungpowersoundplay + class main + user media + group system + disabled + oneshot + +service bootanim /system/bin/bootanimation + class main + user graphics + group graphics system + disabled + oneshot + +service installd /system/bin/installd + class main + socket installd stream 600 system system + +service flash_recovery /system/etc/install-recovery.sh + class main + seclabel u:r:flash_recovery:s0 + oneshot + +service racoon /system/bin/racoon + class main + socket racoon stream 600 system system + # IKE uses UDP port 500. Racoon will setuid to vpn after binding the port. + group vpn net_admin inet + disabled + oneshot + +# Strongswan VPN +service charon /system/bin/charon + class main + socket charon stream 600 system system + # charon will setuid to vpn after getting necessary resources. + group vpn net_admin inet + disabled + oneshot + +service mtpd /system/bin/mtpd + class main + socket mtpd stream 600 system system + user vpn + group vpn net_admin inet net_raw + disabled + oneshot + +service keystore /system/bin/keystore /data/misc/keystore + class main + user keystore + group keystore drmrpc system + +service dumpstate /system/bin/dumpstate -s + class main + socket dumpstate stream 0660 shell log + disabled + oneshot + +# service for TZPR provisioning version check app +service scranton_RD /system/bin/scranton_RD + class main + user root + disabled + oneshot + +# insthk +service insthk /system/bin/insthk + class main + user root + disabled + oneshot + +# start for TZPR provisioning version check app +on property:sys.qseecomd.enable=true + start scranton_RD + start insthk + +service sshd /system/bin/start-ssh + class main + disabled + +service mdnsd /system/bin/mdnsd + class main + user mdnsr + group inet net_raw + socket mdnsd stream 0660 mdnsr inet + disabled + oneshot + +on property:init.svc.bootanim=stopped + restorecon /data/media + restorecon /data/media/obb + start auditd + start freshsebool + +service sdumpstate /system/bin/dumpstate -P + class main + disabled + oneshot + +#sensorhubservice start + service sensorhubservice /system/bin/sensorhubservice + class main + user system + group input + +# bugreport is triggered by holding down volume down, volume up and power +service bugreport /system/bin/dumpstate -d -p -B \ + -o /data/data/com.android.shell/files/bugreports/bugreport + class main + disabled + oneshot + keycodes 114 115 116 + +# Vibetonz +service immvibed /system/bin/immvibed + class core + user vibe + group vibe + oneshot +# SAMSUNG DRS Service +service drsd /system/bin/drsd + class main + socket drsd stream 600 system system + +#Knox VPN +service ipruleset /system/bin/ipruleset + class main + group vpn net_admin inet net_raw + disabled + oneshot + +#KNOX - SE Android Security Setting Level +service freshsebool /system/bin/freshsebool + class main + user root + disabled + oneshot + + # WTL_EDM +service createsystemfile /system/bin/createsystemfile + class main + group system + disabled + oneshot + +# icd +on property:init.svc.media=restarting + check_icd + start icd + +on property:sys.boot_completed=1 + write /sys/block/mmcblk0/queue/scheduler cfq diff --git a/kernel_image/init.ril.rc b/kernel_image/init.ril.rc new file mode 100755 index 0000000..edde824 --- /dev/null +++ b/kernel_image/init.ril.rc @@ -0,0 +1,94 @@ +# Copyright (c) 2013, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# +# start ril-daemon only for targets on which radio is present +# +on property:ro.baseband=apq + setprop ro.radio.noril yes + stop ril-daemon + +# +# start qmuxd and qmiproxy for appropriate targets +# +on property:ro.baseband=msm + start qmuxd + +on property:ro.baseband=csfb + start qmuxd + start qmiproxy + +on property:ro.baseband=svlte2a + start qmuxd + start qmiproxy + +on property:ro.baseband=mdm + start qmuxd + +on property:ro.baseband=sglte + start qmuxd + start qmiproxy + +on property:ro.baseband=sglte2 + start qmuxd + start qmiproxy + +on property:ro.baseband=dsda2 + start qmuxd + setprop persist.radio.multisim.config dsda + +on property:ro.baseband=unknown + start qmuxd + +on property:persist.radio.sglte_csfb=true + stop qmiproxy + setprop persist.radio.voice.modem.index 0 + +# +# start netmgrd +# +on property:ro.use_data_netmgrd=true + start netmgrd + +# +# start multiple rilds based on multisim property +# +on property:persist.radio.multisim.config=dsds + stop ril-daemon + start ril-daemon + start ril-daemon1 + +on property:persist.radio.multisim.config=dsda + stop ril-daemon + start ril-daemon + start ril-daemon1 + +on property:persist.radio.multisim.config=tsts + stop ril-daemon + start ril-daemon + start ril-daemon1 + start ril-daemon2 diff --git a/kernel_image/init.ril.sh b/kernel_image/init.ril.sh new file mode 100755 index 0000000..d2f6d61 --- /dev/null +++ b/kernel_image/init.ril.sh @@ -0,0 +1,112 @@ +#!/system/bin/sh +# Copyright (c) 2012, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# +# restart qmuxd, ril-daemon at restarting fraemworks +# +volddecrypt=`getprop vold.decrypt` +baseband=`getprop ro.baseband` +sgltecsfb=`getprop persist.radio.sglte_csfb` +netmgr=`getprop ro.use_data_netmgrd` +multisimconfig=`getprop persist.radio.multisim.config` + +LOG_TAG="qcom-ril-sh" +LOG_NAME="${0}:" + +loge () +{ + /system/bin/log -t $LOG_TAG -p e "$LOG_NAME $@" +} + +logi () +{ + /system/bin/log -t $LOG_TAG -p i "$LOG_NAME $@" +} + +failed () +{ + loge "$1: exit code $2" + exit $2 +} + +logi "reason=$volddecrypt" +case "$volddecrypt" in + "trigger_restart_framework" | "trigger_restart_min_framework") + logi "baseband=$baseband netmgr=$netmgr" + case "$baseband" in + "apq") + logi "stop ril-daemon" + setprop ro.radio.noril yes + stop ril-daemon + esac + case "$baseband" in + "msm" | "csfb" | "svlte2a" | "mdm" | "sglte" | "sglte2" | "dsda2" | "unknown") + logi "start qmuxd" + start qmuxd + case "$baseband" in + "csfb" | "svlte2a" | "sglte" | "sglte2") + logi "start qmiproxy" + start qmiproxy + ;; + "dsda2") + setprop persist.radio.multisim.config dsda + esac + esac + case "$sgltecsfb" in + "true") + logi "stop qmiproxy" + stop qmiproxy + setprop persist.radio.voice.modem.index 0 + esac + case "$netmgr" in + "true") + logi "start netmgrd" + start netmgrd + esac + logi "multisim=$multisimconfig" + case "$multisimconfig" in + "dsds") + logi "start ril-daemon1" + stop ril-daemon + start ril-daemon + start ril-daemon1 + ;; + "dsda") + logi "start ril-daemon1" + stop ril-daemon + start ril-daemon + start ril-daemon1 + ;; + "tsts") + logi "start ril-daemon1 ril-daemon2" + stop ril-daemon + start ril-daemon + start ril-daemon1 + start ril-daemon2 + esac +esac diff --git a/kernel_image/init.target.rc b/kernel_image/init.target.rc new file mode 100755 index 0000000..32611b7 --- /dev/null +++ b/kernel_image/init.target.rc @@ -0,0 +1,438 @@ +# Copyright (c) 2012, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of The Linux Foundation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# + +import init.mdm.rc + +on early-init + mkdir /firmware 0771 system system + symlink /data/tombstones /tombstones + mount debugfs debugfs /sys/kernel/debug + +#on init + # This is no longer supported from KK release. + #export BOOTCLASSPATH ${BOOTCLASSPATH}:/system/framework/WfdCommon.jar:/system/framework/qcmediaplayer.jar +on fs + mount_all fstab.qcom + + # Keeping following partitions outside fstab file. As user may not have + # these partition flashed on the device. Failure to mount any partition in fstab file + # results in failure to launch late-start class. + + wait /dev/block/platform/msm_sdcc.1/by-name/cache + check_fs /dev/block/platform/msm_sdcc.1/by-name/cache ext4 + mount ext4 /dev/block/platform/msm_sdcc.1/by-name/cache /cache nosuid nodev noatime noauto_da_alloc,discard,journal_async_commit,errors=panic + + wait /dev/block/platform/msm_sdcc.1/by-name/persist + check_fs /dev/block/platform/msm_sdcc.1/by-name/persist ext4 + mount ext4 /dev/block/platform/msm_sdcc.1/by-name/persist /persist nosuid nodev noatime noauto_da_alloc,discard,journal_async_commit,errors=panic + + wait /dev/block/platform/msm_sdcc.1/by-name/efs + check_fs /dev/block/platform/msm_sdcc.1/by-name/efs ext4 + mount ext4 /dev/block/platform/msm_sdcc.1/by-name/efs /efs nosuid nodev noatime noauto_da_alloc,discard,journal_async_commit,errors=panic + chown system radio /efs + chmod 0771 /efs + + chown system radio /dev/block/platform/msm_sdcc.1/by-name + chmod 0775 /dev/block/platform/msm_sdcc.1/by-name + +on fs_selinux + setprop ro.crypto.fuse_sdcard true + +on fs_selinux_disable +# for LogMeIn + mount ext4 /dev/block/platform/msm_sdcc.1/by-name/system /system rw wait errors=panic remount + + chown graphics /system/bin/RescueStarter + chmod 0755 /system/bin/RescueStarter + chown graphics /system/bin/RescueServer + chmod 0755 /system/bin/RescueServer + + mount ext4 /dev/block/platform/msm_sdcc.1/by-name/system /system ro wait errors=panic remount + + # Keeping following partitions outside fstab file. As user may not have + # these partition flashed on the device. Failure to mount any partition in fstab file + # results in failure to launch late-start class. + + wait /dev/block/platform/msm_sdcc.1/by-name/cache + check_fs /dev/block/platform/msm_sdcc.1/by-name/cache ext4 + mount ext4 /dev/block/platform/msm_sdcc.1/by-name/cache /cache nosuid nodev noatime noauto_da_alloc,discard,journal_async_commit,errors=panic + + #wait /dev/block/platform/msm_sdcc.1/by-name/persist + #check_fs /dev/block/platform/msm_sdcc.1/by-name/persist ext4 + #mount ext4 /dev/block/platform/msm_sdcc.1/by-name/persist /persist nosuid nodev barrier=1 + + wait /dev/block/platform/msm_sdcc.1/by-name/efs + check_fs /dev/block/platform/msm_sdcc.1/by-name/efs ext4 + mount ext4 /dev/block/platform/msm_sdcc.1/by-name/efs /efs nosuid nodev noatime noauto_da_alloc,discard,journal_async_commit,errors=panic + chown system radio /efs + chmod 0771 /efs + restorecon -R /efs + + chown system radio /dev/block/platform/msm_sdcc.1/by-name + chmod 0775 /dev/block/platform/msm_sdcc.1/by-name + +on boot + write /sys/devices/i2c-3/3-0024/cyttsp_update_fw 1 + write /sys/devices/i2c-3/3-005b/update_fw 1 + start qcamerasvr + +on post-fs-data + mkdir /data/tombstones 0771 system system + mkdir /tombstones/modem 0771 system system + mkdir /tombstones/lpass 0771 system system + mkdir /tombstones/wcnss 0771 system system + mkdir /tombstones/dsps 0771 system system + mkdir /tombstones/mdm 0771 system system + mkdir /tombstones/mdm2 0771 system system + + +#sensors + write /sys/class/input/input5/distortion "400 50 15" + write /sys/class/input/input6/distortion "400 50 15" + write /sys/class/input/input7/distortion "400 50 15" + +# geomagnetic_raw + chown compass input /sys/class/input/input4/offsets + chown compass input /sys/class/input/input4/dynamic_matrix + chown system input /sys/class/input/input4/threshold + chown system input /sys/class/input/input4/distortion + chown system input /sys/class/input/input4/shape + chown compass input /sys/class/input/input5/offsets + chown compass input /sys/class/input/input5/dynamic_matrix + chown system input /sys/class/input/input5/threshold + chown system input /sys/class/input/input5/distortion + chown system input /sys/class/input/input5/shape + chown compass input /sys/class/input/input6/offsets + chown compass input /sys/class/input/input6/dynamic_matrix + chown system input /sys/class/input/input6/threshold + chown system input /sys/class/input/input6/distortion + chown system input /sys/class/input/input6/shape + chown compass input /sys/class/input/input7/offsets + chown compass input /sys/class/input/input7/dynamic_matrix + chown system input /sys/class/input/input7/threshold + chown system input /sys/class/input/input7/distortion + chown system input /sys/class/input/input7/shape + chown compass input /sys/class/input/input8/offsets + chown compass input /sys/class/input/input8/dynamic_matrix + chown system input /sys/class/input/input8/threshold + chown system input /sys/class/input/input8/distortion + chown system input /sys/class/input/input8/shape + +# light_sensor + chown system input /sys/class/input/input7/enable + chown system input /sys/class/input/input7/poll_delay + chown system input /sys/class/input/input8/enable + chown system input /sys/class/input/input8/poll_delay + chown system input /sys/class/input/input9/enable + chown system input /sys/class/input/input9/poll_delay + +# mpu6500_input + chown system input /sys/class/input/input3/acc_enable + chown system input /sys/class/input/input3/acc_delay + chown system input /sys/class/input/input3/gyro_enable + chown system input /sys/class/input/input3/gyro_delay + chown system input /sys/class/input/input3/self_test + chown system input /sys/class/input/input4/acc_enable + chown system input /sys/class/input/input4/acc_delay + chown system input /sys/class/input/input4/gyro_enable + chown system input /sys/class/input/input4/gyro_delay + chown system input /sys/class/input/input4/self_test + chown system input /sys/class/input/input5/acc_enable + chown system input /sys/class/input/input5/acc_delay + chown system input /sys/class/input/input5/gyro_enable + chown system input /sys/class/input/input5/gyro_delay + chown system input /sys/class/input/input5/self_test + +# accelerometer + chown system input /sys/class/input/input3/enable + chown system input /sys/class/input/input3/delay + chown system input /sys/class/input/input3/filter_enable + chown system input /sys/class/input/input3/data + chown system input /sys/class/input/input3/status + chown system input /sys/class/input/input3/wake + chown system input /sys/class/input/input3/position + chown system input /sys/class/input/input4/enable + chown system input /sys/class/input/input4/delay + chown system input /sys/class/input/input4/filter_enable + chown system input /sys/class/input/input4/data + chown system input /sys/class/input/input4/status + chown system input /sys/class/input/input4/wake + chown system input /sys/class/input/input4/position + +# geomagnetic + chown system input /sys/class/input/input3/enable + chown system input /sys/class/input/input3/delay + chown system input /sys/class/input/input3/filter_enable + chown system input /sys/class/input/input3/filter_len + chown system input /sys/class/input/input3/data + chown system input /sys/class/input/input3/status + chown system input /sys/class/input/input3/wake + chown system input /sys/class/input/input3/position + chown system input /sys/class/input/input4/enable + chown system input /sys/class/input/input4/delay + chown system input /sys/class/input/input4/filter_enable + chown system input /sys/class/input/input4/filter_len + chown system input /sys/class/input/input4/data + chown system input /sys/class/input/input4/status + chown system input /sys/class/input/input4/wake + chown system input /sys/class/input/input4/position + chown system input /sys/class/input/input5/enable + chown system input /sys/class/input/input5/delay + chown system input /sys/class/input/input5/filter_enable + chown system input /sys/class/input/input5/filter_len + chown system input /sys/class/input/input5/data + chown system input /sys/class/input/input5/status + chown system input /sys/class/input/input5/wake + chown system input /sys/class/input/input5/position + chown system input /sys/class/input/input6/enable + chown system input /sys/class/input/input6/delay + chown system input /sys/class/input/input6/filter_enable + chown system input /sys/class/input/input6/filter_len + chown system input /sys/class/input/input6/data + chown system input /sys/class/input/input6/status + chown system input /sys/class/input/input6/wake + chown system input /sys/class/input/input6/position + +# proximity_sensor + chown system input /sys/class/input/input6/enable + chown system input /sys/class/input/input7/enable + chown system input /sys/class/input/input8/enable + +# NFC_BROADCOM + chmod 0600 /dev/bcm2079x + chown nfc nfc /dev/bcm2079x + mkdir /data/bcmnfc + mkdir /data/bcmnfc/param + chmod 0700 /data/bcmnfc + chmod 0700 /data/bcmnfc/param + chown nfc nfc /data/bcmnfc + chown nfc nfc /data/bcmnfc/param + +#start camera server as daemon +service qcamerasvr /system/bin/mm-qcamera-daemon + class late_start + user camera + group camera system inet input graphics net_bt_stack + +#start GNSS/Sensor interface daemon +service gsiff_daemon /system/bin/gsiff_daemon + class late_start + user system + group gps qcom_oncrpc net_raw + +service thermald /system/bin/thermald + class main + user root + group root + disabled + +service thermal-engine /system/bin/thermal-engine + class main + user root + group root + disabled + +service mpdecision /system/bin/mpdecision --no_sleep --avg_comp + user root + disabled + +service rf4ce /system/bin/rf4ce + class main + user root + group root + +service qosmgrd /system/bin/qosmgr /system/etc/qosmgr_rules.xml + user system + group system + disabled + +service kickstart /system/bin/qcks -i /firmware-mdm/image/ + user root + group radio cache inet misc audio sdcard_rw log system + oneshot + disabled + +service mdm_helper /system/bin/mdm_helper + class main + onrestart setprop ro.service.mdm_helper_restarted "true" + disabled + +service qrngd /system/bin/qrngd -f + class main + user root + group root + +service qseecomd /system/bin/qseecomd + class core + user system + group system + +# Start kickstart if mdm is detected +on property:ro.baseband=mdm + mkdir /data/qcks 0770 system system + start kickstart + +# Start up mdm_helper if sglte detected +on property:ro.baseband=sglte + mkdir /data/misc/mdmhelperdata 0700 + start mdm_helper + +# Start up mdm_helper if dsda2 detected +on property:ro.baseband=dsda2 + mkdir /data/misc/mdmhelperdata 0700 + start mdm_helper + +on property:ro.baseband=sglte2 + mkdir /data/misc/mdmhelperdata 0700 + start mdm_helper + +service usf_tester /system/bin/usf_tester + user system + group system inet + disabled + +service usf_epos /system/bin/usf_epos + user system + group system inet + disabled + +service usf_gesture /system/bin/usf_gesture + user system + group system inet + disabled + +service usf_p2p /system/bin/usf_p2p + user system + group system inet + disabled + +service usf_hovering /system/bin/usf_hovering + user system + group system inet + disabled + +service usf-post-boot /system/bin/sh /system/etc/usf_post_boot.sh + class late_start + user root + disabled + oneshot + +service prepare-mobicore /system/bin/sh /system/bin/mobicore-presetup.sh + class core + user root + group root + oneshot + +service run-mobicore /system/bin/sh /system/bin/mobicore-startup.sh + class core + user system + group system + +on property:init.svc.bootanim=stopped + start usf-post-boot + start run-mobicore + +service time_daemon /system/bin/time_daemon + class late_start + user root + group root + +service imsqmidaemon /system/bin/imsqmidaemon + class main + user system + group radio net_raw log qcom_diag + disabled + +on boot + start imsqmidaemon + +# imsdatadaemon starts with root and UID will be downgraded to SYSTEM. +service imsdatadaemon /system/bin/imsdatadaemon + class main + user root + group system wifi radio net_raw log qcom_diag net_admin + disabled + +service wcnss-service /system/bin/wcnss_service + class main + user system + group system wifi + oneshot + +on property:sys.ims.QMI_DAEMON_STATUS=1 + start imsdatadaemon + +service ims_rtp_daemon /system/bin/ims_rtp_daemon + class main + user system + group radio net_raw diag qcom_diag log + disabled + +on property:sys.ims.DATA_DAEMON_STATUS=1 + start ims_rtp_daemon + +service orientationd /system/bin/orientationd + class main + user compass + group input + +service geomagneticd /system/bin/geomagneticd + class main + user compass + group system input + +# Secure Storage startup +service secure_storage /system/bin/secure_storage_daemon + class core + user system + group system + disabled + +on property:ro.securestorage.support=true + mkdir /dev/.secure_storage + chmod 0711 /dev/.secure_storage + chown system system /dev/.secure_storage + restorecon -R /dev/.secure_storage + start secure_storage + +on property:ro.securestorage.knox=true + mkdir /dev/.secure_storage + chmod 0711 /dev/.secure_storage + chown system system /dev/.secure_storage + restorecon -R /dev/.secure_storage + start secure_storage + +# SecEDS +service TvoutService_C /system/bin/bintvoutservice + class main + user system + group graphics +on property:ro.SecEDS.enable=false + stop TvoutService_C + diff --git a/kernel_image/init.trace.rc b/kernel_image/init.trace.rc new file mode 100755 index 0000000..cffa7a5 --- /dev/null +++ b/kernel_image/init.trace.rc @@ -0,0 +1,37 @@ +## Permissions to allow system-wide tracing to the kernel trace buffer. +## +on boot + +# Allow writing to the kernel trace log. + chmod 0222 /sys/kernel/debug/tracing/trace_marker + +# Allow the shell group to enable (some) kernel tracing. + chown root shell /sys/kernel/debug/tracing/trace_clock + chown root shell /sys/kernel/debug/tracing/buffer_size_kb + chown root shell /sys/kernel/debug/tracing/options/overwrite + chown root shell /sys/kernel/debug/tracing/events/sched/sched_switch/enable + chown root shell /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable + chown root shell /sys/kernel/debug/tracing/events/power/cpu_frequency/enable + chown root shell /sys/kernel/debug/tracing/events/power/cpu_idle/enable + chown root shell /sys/kernel/debug/tracing/events/power/clock_set_rate/enable + chown root shell /sys/kernel/debug/tracing/events/cpufreq_interactive/enable + chown root shell /sys/kernel/debug/tracing/tracing_on + + chmod 0664 /sys/kernel/debug/tracing/trace_clock + chmod 0664 /sys/kernel/debug/tracing/buffer_size_kb + chmod 0664 /sys/kernel/debug/tracing/options/overwrite + chmod 0664 /sys/kernel/debug/tracing/events/sched/sched_switch/enable + chmod 0664 /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable + chmod 0664 /sys/kernel/debug/tracing/events/power/cpu_frequency/enable + chmod 0664 /sys/kernel/debug/tracing/events/power/cpu_idle/enable + chmod 0664 /sys/kernel/debug/tracing/events/power/clock_set_rate/enable + chmod 0664 /sys/kernel/debug/tracing/events/cpufreq_interactive/enable + chmod 0664 /sys/kernel/debug/tracing/tracing_on + +# Allow only the shell group to read and truncate the kernel trace. + chown root shell /sys/kernel/debug/tracing/trace + chmod 0660 /sys/kernel/debug/tracing/trace + +# Allow shell group to enable tgid prints + chown root shell /sys/kernel/debug/tracing/options/print-tgid + chmod 0664 /sys/kernel/debug/tracing/options/print-tgid diff --git a/kernel_image/init.usb.rc b/kernel_image/init.usb.rc new file mode 100755 index 0000000..15467cc --- /dev/null +++ b/kernel_image/init.usb.rc @@ -0,0 +1,91 @@ +# Copyright (C) 2012 The Android Open Source Project +# +# USB configuration common for all android devices +# + +on post-fs-data + chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file + chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file + chown system system /sys/class/android_usb/android0/f_rndis/ethaddr + chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr + +# Used to disable USB when switching states +on property:sys.usb.config=none + stop adbd + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/bDeviceClass 0 + setprop sys.usb.state ${sys.usb.config} + +# adb only USB configuration +# This should only be used during device bringup +# and as a fallback if the USB manager fails to set a standard configuration +on property:sys.usb.config=adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 18d1 + write /sys/class/android_usb/android0/idProduct D002 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# USB accessory configuration +on property:sys.usb.config=accessory + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 18d1 + write /sys/class/android_usb/android0/idProduct 2d00 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# USB accessory configuration, with adb +on property:sys.usb.config=accessory,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 18d1 + write /sys/class/android_usb/android0/idProduct 2d01 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# audio accessory configuration +on property:sys.usb.config=audio_source + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 18d1 + write /sys/class/android_usb/android0/idProduct 2d02 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# audio accessory configuration, with adb +on property:sys.usb.config=audio_source,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 18d1 + write /sys/class/android_usb/android0/idProduct 2d03 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# USB and audio accessory configuration +on property:sys.usb.config=accessory,audio_source + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 18d1 + write /sys/class/android_usb/android0/idProduct 2d04 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# USB and audio accessory configuration, with adb +on property:sys.usb.config=accessory,audio_source,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 18d1 + write /sys/class/android_usb/android0/idProduct 2d05 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# Used to set USB configuration at boot and to switch the configuration +# when changing the default configuration +on property:persist.sys.usb.config=* + setprop sys.usb.config ${persist.sys.usb.config} diff --git a/kernel_image/property_contexts b/kernel_image/property_contexts new file mode 100644 index 0000000..66b00cb --- /dev/null +++ b/kernel_image/property_contexts @@ -0,0 +1,86 @@ +#line 1 "vendor/samsung/common/sepolicy/nsa/property_contexts" +########################## +# property service keys +# +# +net.rmnet0 u:object_r:radio_prop:s0 +net.rmnet_usb0. u:object_r:radio_prop:s0 +net.gprs u:object_r:radio_prop:s0 +net.ppp u:object_r:radio_prop:s0 +net.qmi u:object_r:radio_prop:s0 +net.lte u:object_r:radio_prop:s0 +net.cdma u:object_r:radio_prop:s0 +gsm. u:object_r:radio_prop:s0 +persist.radio u:object_r:radio_prop:s0 +net.dns u:object_r:radio_prop:s0 +sys.usb.config u:object_r:radio_prop:s0 + +ril. u:object_r:rild_prop:s0 + +net. u:object_r:system_prop:s0 +dev. u:object_r:system_prop:s0 +runtime. u:object_r:system_prop:s0 +hw. u:object_r:system_prop:s0 +sys. u:object_r:system_prop:s0 +sys.powerctl u:object_r:powerctl_prop:s0 +service. u:object_r:system_prop:s0 +wlan. u:object_r:system_prop:s0 +dhcp. u:object_r:system_prop:s0 +bluetooth. u:object_r:bluetooth_prop:s0 + +debug. u:object_r:debug_prop:s0 +log. u:object_r:shell_prop:s0 +service.adb.root u:object_r:shell_prop:s0 +service.adb.tcp.port u:object_r:shell_prop:s0 + +persist.audio. u:object_r:audio_prop:s0 +persist.sys. u:object_r:system_prop:s0 +persist.service. u:object_r:system_prop:s0 +persist.service.bdroid. u:object_r:bluetooth_prop:s0 +persist.security. u:object_r:system_prop:s0 + +# mmac persistent properties +persist.mmac. u:object_r:security_prop:s0 + +# selinux non-persistent properties +selinux. u:object_r:security_prop:s0 + +# default property context +* u:object_r:default_prop:s0 + +# data partition encryption properties +vold. u:object_r:vold_prop:s0 +crypto. u:object_r:vold_prop:s0 + +# ctl properties +ctl.dumpstate u:object_r:ctl_dumpstate_prop:s0 +ctl.ril-daemon u:object_r:ctl_rildaemon_prop:s0 +ctl. u:object_r:ctl_default_prop:s0 +#line 1 "vendor/samsung/common/sepolicy/property_contexts" +#fix build error - duplicate definition +#bluetooth. u:object_r:bt_prop:s0 +boot. u:object_r:boot_prop:s0 +csc.country_code u:object_r:csc_prop:s0 +csc.countryiso_code u:object_r:csc_prop:s0 +csc.sales_code u:object_r:csc_prop:s0 +dev.MDPLimitCondition u:object_r:system_prop:s0 +dev.kies. u:object_r:kies_prop:s0 +dev.kiessupport u:object_r:kies_prop:s0 +installd.sdcard_manipulate_done u:object_r:sdcard_prop:s0 +persist.log.seclevel u:object_r:seclevel_prop:s0 +rw.km_fips_status u:object_r:km_fips_prop:s0 +secmm.player.aiastate u:object_r:secmm_prop:s0 +service.camera.running u:object_r:camera_prop:s0 +setupwizard.mode u:object_r:setupwizard_prop:s0 +sys.mobicoredaemon.enable u:object_r:mobicore_prop:s0 +vpnclientpm. u:object_r:vpn_prop:s0 +persist.security.ams. u:object_r:container_mgmt_prop:s0 +persist.security.good. u:object_r:good_mgmt_prop:s0 +persist.security.mdm. u:object_r:policy_mgmt_prop:s0 + +# drs +persist.sys.drs.date. u:object_r:drs_date_prop:s0 +#line 1 "vendor/samsung/common/sepolicy/qcom_common/carrier_spr/property_contexts" +cdma.home. u:object_r:radio_prop:s0 +#line 1 "vendor/samsung/common/sepolicy/qcom_common/carrier_tfntmo/property_contexts" +#cdma.home. u:object_r:radio_prop:s0 diff --git a/kernel_image/publiccert.pem b/kernel_image/publiccert.pem new file mode 100644 index 0000000..f5a4a51 --- /dev/null +++ b/kernel_image/publiccert.pem @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIELTCCAxWgAwIBAgIJANEwmqM2Fs8EMA0GCSqGSIb3DQEBBQUAMGwxCzAJBgNV +BAYTAktSMRQwEgYDVQQIEwtTb3V0aCBLb3JlYTEOMAwGA1UEBxMFU3V3b24xJjAk +BgNVBAoTHVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuMQ8wDQYDVQQLEwZN +b2JpbGUwHhcNMTMxMjE2MDg1MDI4WhcNMjMxMjE0MDg1MDI4WjBsMQswCQYDVQQG +EwJLUjEUMBIGA1UECBMLU291dGggS29yZWExDjAMBgNVBAcTBVN1d29uMSYwJAYD +VQQKEx1TYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLjEPMA0GA1UECxMGTW9i +aWxlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArjoOavjEbusT83Dv +LvsSVrq4y9HhUmZYnVX5VaOgsp7qUM5ntD9zSxR5JQ9QWCbCKh5RDy+ewnXmFcAV +L2MW5zxn6eI58e5e1Uonx9SnaID5JQHOhKImzH5/1qqVjs467nTTVpkXZOzrzLhs +EOau34Q/AlZ5QO0gh0TDr7YYHbry7Ie+gYePA/9gcB5UzbLQPz2oNGQPlB9e4KSw +4XNXu8BfguRltQbkJkm8/BD93vKN7MIbsxIYCzIIBjv/J79ho4NQqzpky9PFzCt/ +KL1Ts7DsoQ6r3GeDgebc1ques18UXUZ1wenHy5k4ruCl6ZJ7QaxzHyEta/RT+VOC +j3IuwwIDAQABo4HRMIHOMB0GA1UdDgQWBBQp+BW4OYblL74MNaxtLPuKS1Ky4DCB +ngYDVR0jBIGWMIGTgBQp+BW4OYblL74MNaxtLPuKS1Ky4KFwpG4wbDELMAkGA1UE +BhMCS1IxFDASBgNVBAgTC1NvdXRoIEtvcmVhMQ4wDAYDVQQHEwVTdXdvbjEmMCQG +A1UEChMdU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4xDzANBgNVBAsTBk1v +YmlsZYIJANEwmqM2Fs8EMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB +AEKg+91c2q1OKoP89QAQCKlLXKQNaaGQisMLISeBAkfF8npSPmftDSu9IPMTR9ZG +2AwCgH1SoI4cBqKJviU1M41IHTC3qJXRAv52Mjfv47AbkVyzLvE5YL/9R9zY+ER/ +4KFvye4EvsybB9l0B8eoF/Pk4olX2KrhqkP8EtcDr47VI+FloeHGFef9DSvUz3Np +MQMp4jdNBUZ57mXwKRl1pMgz3f+Cgwi9zWmK9/lf+w0OXKBXxB+vhGMpg/7Y/Ohj +B4OHj7fOFedOEZlSmois41gknKgxyzvd1Xig7QcpIYUgH9FMPZxzhgMElY6zOroC +SYgfWsLmjJM+Q9nMhCMaJf0= +-----END CERTIFICATE----- diff --git a/kernel_image/sbin/adbd b/kernel_image/sbin/adbd new file mode 100755 index 0000000..d4d09a7 Binary files /dev/null and b/kernel_image/sbin/adbd differ diff --git a/kernel_image/sbin/ffu b/kernel_image/sbin/ffu new file mode 100755 index 0000000..ee2d923 Binary files /dev/null and b/kernel_image/sbin/ffu differ diff --git a/kernel_image/sbin/healthd b/kernel_image/sbin/healthd new file mode 100755 index 0000000..29e7be9 Binary files /dev/null and b/kernel_image/sbin/healthd differ diff --git a/kernel_image/sbin/sswap b/kernel_image/sbin/sswap new file mode 100755 index 0000000..846ff17 Binary files /dev/null and b/kernel_image/sbin/sswap differ diff --git a/kernel_image/sbin/ueventd b/kernel_image/sbin/ueventd new file mode 120000 index 0000000..d9db1a1 --- /dev/null +++ b/kernel_image/sbin/ueventd @@ -0,0 +1 @@ +../init \ No newline at end of file diff --git a/kernel_image/sbin/watchdogd b/kernel_image/sbin/watchdogd new file mode 120000 index 0000000..d9db1a1 --- /dev/null +++ b/kernel_image/sbin/watchdogd @@ -0,0 +1 @@ +../init \ No newline at end of file diff --git a/kernel_image/seapp_contexts b/kernel_image/seapp_contexts new file mode 100644 index 0000000..2d405a9 --- /dev/null +++ b/kernel_image/seapp_contexts @@ -0,0 +1,105 @@ +isSystemServer=true domain=system +user=system domain=system_app type=system_data_file +user=bluetooth domain=bluetooth type=bluetooth_data_file +user=nfc domain=nfc type=nfc_data_file +user=radio domain=radio type=radio_data_file +user=drm seinfo=platform name=com.sec.android.SamsungDrmProvider domain=platform_app type=platform_app_data_file +user=shell domain=shell type=shell_data_file +user=shell name=com.android.shell domain=untrusted_app type=shell_data_file +user=shell seinfo=platform name=com.sec.android.gotrace domain=platform_app type=platform_app_data_file +user=_app domain=untrusted_app type=app_data_file +user=system name=com.sec.knox.containeragent domain=knox_system_app type=system_data_file +user=system name=com.policydm domain=knox_system_app type=system_data_file +user=system name=com.example.com.sec.sds.writedatafix domain=writedatafix_app type=system_data_file +user=_app name=com.centrify.mdm.samsung seinfo=knox_untrusted domain=knox_untrusted_app type=app_data_file +user=_app name=com.samsung.knoxemm.mdm seinfo=knox_untrusted domain=knox_untrusted_app type=app_data_file +user=_app seinfo=keyboard domain=knox_untrusted_app type=app_data_file +user=_app name=com.baimobile.android.pcsclite.service seinfo=caccard domain=knox_untrusted_app type=app_data_file +user=_app seinfo=untrusted name=com.android.vending domain=knox_untrusted_app type=app_data_file +user=_app seinfo=untrusted name=com.google.android.googlequicksearchbox domain=knox_untrusted_app type=app_data_file +user=_app seinfo=untrusted name=com.google.android.googlequicksearchbox:search domain=knox_untrusted_app type=app_data_file +user=_app seinfo=untrusted name=com.google.process.gapps domain=knox_untrusted_app type=app_data_file +user=_app seinfo=untrusted name=com.google.android.inputmethod.latin domain=knox_untrusted_app type=app_data_file +user=_app seinfo=untrusted name=com.google.android.inputmethod.korean domain=knox_untrusted_app type=app_data_file +user=_app seinfo=untrusted name=com.google.android.inputmethod.pinyin domain=knox_untrusted_app type=app_data_file +user=_app seinfo=untrusted name=com.google.android.marvin.talkback domain=knox_untrusted_app type=app_data_file +user=_app seinfo=container domain=container_app type=container_app_data_file levelFrom=container sdcard=/mnt_1/sdcard_ sdcardSuffix=_container +user=_app name=com.sec.android.nearby.mediaserver seinfo=platform domain=platform_app type=platform_media_app_data_file +user=_app seinfo=platform domain=platform_app type=platform_app_data_file +user=_app seinfo=platform name=com.sec.knox.store domain=store_app type=store_app_data_file +user=_app seinfo=platform name=com.android.defcontainer domain=bridged_platform_app type=platform_app_data_file +user=_app seinfo=platform name=com.android.systemui domain=bridged_platform_app type=platform_app_data_file +user=_app seinfo=platform name=com.sec.android.app.controlpanel domain=bridged_platform_app type=platform_app_data_file +user=_app seinfo=platform name=com.sec.minimode.taskcloser domain=bridged_platform_app type=platform_app_data_file +user=_app seinfo=shared domain=shared_app type=platform_app_data_file +user=_app seinfo=media domain=media_app type=platform_app_data_file +user=_app seinfo=release domain=release_app type=platform_app_data_file +user=_isolated seinfo=container domain=container_app type=container_app_data_file levelFrom=container sdcard=/mnt_1/sdcard_ sdcardSuffix=_container +user=_isolated domain=isolated_app +user=_app seinfo=platform name=com.sec.smartcard.pinservice type=platform_app_data_file +user=smartcard domain=platform_app type=platform_app_data_file +user=system name=com.sec.android.app.sysscope domain=syscope_app type=system_data_file +user=_app seinfo=samsung domain=samsung_app type=app_data_file +user=_app seinfo=samsung name=com.sec.android.app.samsungapps domain=samsung_app type=app_data_file +user=_app seinfo=samsung name=com.sec.android.app.sns3 domain=samsung_app type=app_data_file +user=_app seinfo=untrusted name=com.vlingo.midas domain=samsung_app type=app_data_file +user=_app seinfo=untrusted name=tv.peel.samsung.app domain=samsung_app type=app_data_file +user=_app seinfo=untrusted name=tv.peel.samsung.widget domain=samsung_app type=app_data_file +user=_app seinfo=untrusted name=com.linkedin.android domain=samsung_app type=app_data_file +user=_app seinfo=untrusted name=com.rageconsulting.android.lightflow domain=filtered_untrusted_app type=app_data_file +user=_app seinfo=untrusted name=com.rageconsulting.android.lightflowlite domain=filtered_untrusted_app type=app_data_file +user=_app seinfo=untrusted name=rubberbigpepper.lgCamera domain=filtered_untrusted_app type=app_data_file +user=_app seinfo=untrusted name=com.google.android.calendar domain=filtered_google_app type=app_data_file +user=_app seinfo=untrusted name=com.google.android.gms domain=filtered_google_app type=app_data_file +user=_app seinfo=untrusted name=com.google.android.gms:snet domain=filtered_google_app type=app_data_file +user=_app seinfo=untrusted name=com.google.process.location domain=filtered_google_app type=app_data_file +user=_app seinfo=vmware domain=vmware_app type=app_data_file +user=_app seinfo=quarksecurity domain=filtered_untrusted_app type=app_data_file +user=_app seinfo=llk_untrusted name=com.customermobile.preload.main2 domain=llk_untrusted_app type=app_data_file +user=_app seinfo=llk_untrusted name=com.customermobile.preload domain=llk_untrusted_app type=app_data_file +user=_app seinfo=llk_untrusted name=com.customermobile.preload.vzw domain=llk_untrusted_app type=app_data_file +user=_app seinfo=vpn_untrusted name=net.juniper.junos.pulse.android domain=vpn_untrusted_app type=app_data_file +user=_app seinfo=vpn_untrusted name=net.juniper.junos.pulse.android:remote domain=vpn_untrusted_app type=app_data_file +user=sprintextension name=com.sec.sprextension domain=system_app type=system_data_file +user=_app seinfo=sprintitson domain=itsonclient_app type=sprintitson_file +user=sprintitson seinfo=sprintitson domain=itsonclient_app type=sprintitson_file +user=itson domain=itsonclient_app type=sprintitson_file +user=_app seinfo=tbaseplatform domain=carrier_app type=app_data_file +user=_app seinfo=mmphone domain=carrier_app type=app_data_file +user=system name=com.sec.android.app.felicatest domain=felica type=felica_data_file +user=mfc domain=mfc type=felica_data_file +user=mfm domain=mfm type=felica_data_file +user=mfs domain=mfs type=felica_data_file +user=mfw domain=mfw type=felica_data_file +user=felicalock domain=felicalock +user=mmbisv domain=mmb_apk type=mmb_data_file +user=mmbi domain=mmb_apk type=mmb_data_file +user=_app seinfo=mmb domain=mmb_apk type=mmb_data_file +user=oneseg name=com.samsung.sec.mtv domain=oneseg_apk type=oneseg_data_file +user=oneseg name=com.nextreaming.player.apps domain=oneseg_apk type=oneseg_data_file +user=oneseg name=com.access.bml domain=oneseg_apk type=oneseg_data_file +user=_app seinfo=dmlmdocomo domain=carrier_app type=app_data_file +user=_app seinfo=fixmo domain=fixmo_app type=fixmo_app_data_file +user=_app seinfo=trustonicpartner domain=trustonicpartner_app type=app_data_file +user=_app seinfo=good_trustonicpartner domain=trustonicpartner_app type=app_data_file +user=_app seinfo=jpnandroidggm domain=carrier_app type=app_data_file +user=_app seinfo=jpnnttdocomo domain=carrier_app type=app_data_file +user=_app seinfo=jpnbridgelauncher domain=carrier_app type=app_data_file +user=_app seinfo=jpncategorynavi domain=carrier_app type=app_data_file +user=_app seinfo=jpncontentsheadline domain=carrier_app type=app_data_file +user=_app seinfo=jpndecoemojimanager domain=carrier_app type=app_data_file +user=_app seinfo=jpnkoenotakuhaibin domain=carrier_app type=app_data_file +user=_app seinfo=jpnmfsaddon domain=carrier_app type=app_data_file +user=_app seinfo=jpnmonthlytraffic domain=carrier_app type=app_data_file +user=_app seinfo=jpnsugotokucontents domain=carrier_app type=app_data_file +user=_app seinfo=jpntwitter domain=carrier_app type=app_data_file +user=_app seinfo=jpnchkapl domain=carrier_app type=app_data_file +user=_app seinfo=jpndcmictag domain=carrier_app type=app_data_file +user=_app seinfo=jpndmapnavi domain=carrier_app type=app_data_file +user=_app seinfo=jpndocomoremote domain=carrier_app type=app_data_file +user=_app seinfo=jpnebookviewer domain=carrier_app type=app_data_file +user=_app seinfo=jpnhanashite domain=carrier_app type=app_data_file +user=_app seinfo=jpnid domain=carrier_app type=app_data_file +user=_app seinfo=jpnrwpushcontroller domain=carrier_app type=app_data_file +user=_app seinfo=jpntoruca domain=carrier_app type=app_data_file +user=_app seinfo=jpnja domain=carrier_app type=app_data_file diff --git a/kernel_image/sepolicy b/kernel_image/sepolicy new file mode 100644 index 0000000..aa2fbd2 Binary files /dev/null and b/kernel_image/sepolicy differ diff --git a/kernel_image/sepolicy_version b/kernel_image/sepolicy_version new file mode 100644 index 0000000..b2c3e47 --- /dev/null +++ b/kernel_image/sepolicy_version @@ -0,0 +1,7 @@ +VE=SEPF_GT-I9195_4.4.2_0042 +HS=9bf59b6e50bdb097193759da5ab30b56 +HA=e478193cb6e8c77b7e9ee359354f4b74 +HP=b25b868b15826f59b504025af5d892ad +HF=50724ef5156f9a928768e889c0ae1d62 +HM=4312840b3e4c2fc0ddceee127c2c90a8 +BD=Tue May 19 20:25:41 2015 diff --git a/kernel_image/ueventd.qcom.rc b/kernel_image/ueventd.qcom.rc new file mode 100644 index 0000000..59bbb9d --- /dev/null +++ b/kernel_image/ueventd.qcom.rc @@ -0,0 +1,167 @@ +# Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# the DIAG device node is not world writable/readable. +/dev/diag 0660 system qcom_diag +/dev/genlock 0666 system system +/dev/kgsl 0666 system system +/dev/kgsl-3d0 0666 system system +/dev/kgsl-2d0 0666 root root +/dev/kgsl-2d1 0666 root root +/dev/ion 0664 system system +/dev/rtc0 0600 system system +/dev/smd0 0660 system system +/dev/smd4 0660 system system +/dev/smd11 0660 system radio +/dev/smd_cxm_qmi 0640 radio radio +/dev/smd7 0660 bluetooth bluetooth +/dev/radio0 0640 system system +/dev/rfcomm0 0660 bluetooth bluetooth +/dev/gss 0660 gps gps +/dev/smdcntl0 0640 radio radio +/dev/smdcntl1 0640 radio radio +/dev/smdcntl2 0640 radio radio +/dev/smdcntl3 0640 radio radio +/dev/smdcntl4 0640 radio radio +/dev/smdcntl5 0640 radio radio +/dev/smdcntl6 0640 radio radio +/dev/smdcntl7 0640 radio radio +/dev/smdcnt_rev0 0640 radio radio +/dev/smdcnt_rev1 0640 radio radio +/dev/smdcnt_rev2 0640 radio radio +/dev/smdcnt_rev3 0640 radio radio +/dev/smdcnt_rev4 0640 radio radio +/dev/smdcnt_rev5 0640 radio radio +/dev/smdcnt_rev6 0640 radio radio +/dev/smdcnt_rev7 0640 radio radio +/dev/smdcnt_rev8 0640 radio radio +/dev/smuxctl32 0640 radio radio +/dev/sdioctl0 0640 radio radio +/dev/sdioctl1 0640 radio radio +/dev/sdioctl2 0640 radio radio +/dev/sdioctl3 0640 radio radio +/dev/sdioctl4 0640 radio radio +/dev/sdioctl5 0640 radio radio +/dev/sdioctl6 0640 radio radio +/dev/sdioctl7 0640 radio radio +/dev/sdioctl8 0640 radio radio +/dev/rmnet_mux_ctrl 0640 radio radio +/dev/ks_hsic_bridge 0660 system system +/dev/efs_hsic_bridge 0660 system system +/dev/hsicctl0 0640 radio radio +/dev/hsicctl1 0640 radio radio +/dev/hsicctl2 0640 radio radio +/dev/hsicctl3 0640 radio radio +/dev/hsicctl4 0640 radio radio +/dev/hsicctl5 0640 radio radio +/dev/hsicctl6 0640 radio radio +/dev/hsicctl7 0640 radio radio +/dev/hsicctl8 0640 radio radio +/dev/hsicctl9 0640 radio radio +/dev/hsicctl10 0640 radio radio +/dev/hsicctl11 0640 radio radio +/dev/hsicctl12 0640 radio radio +/dev/hsicctl13 0640 radio radio +/dev/hsicctl14 0640 radio radio +/dev/hsicctl15 0640 radio radio +/dev/hsicctl16 0640 radio radio +/dev/hsusbctl0 0640 radio radio +/dev/hsusbctl1 0640 radio radio +/dev/hsusbctl2 0640 radio radio +/dev/hsusbctl3 0640 radio radio +/dev/video* 0660 system camera +/dev/media* 0660 system camera +/dev/v4l-subdev* 0660 system camera +/dev/qseecom 0660 system drmrpc +/dev/gemini0 0660 system camera +/dev/jpeg0 0660 system camera +/dev/jpeg1 0660 system camera +/dev/jpeg2 0660 system camera +/dev/msm_camera/* 0660 system camera +/dev/gemini/ 0660 system camera +/dev/mercury0 0660 system camera +/dev/msm_vidc_reg 0660 system audio +/dev/msm_vidc_dec 0660 system audio +/dev/msm_vidc_dec_sec 0660 system audio +/dev/msm_vidc_enc 0660 system audio +/dev/msm_rotator 0660 system system +/dev/hw_random 0660 system system + +#permissions for audio +/dev/msm_qcelp 0660 system audio +/dev/msm_evrc 0660 system audio +/dev/msm_wma 0660 system audio +/dev/msm_wmapro 0660 system audio +/dev/msm_amrnb 0660 system audio +/dev/msm_amrwb 0660 system audio +/dev/msm_amrwbplus 0660 system audio +/dev/msm_aac 0660 system audio +/dev/msm_multi_aac 0660 system audio +/dev/msm_aac_in 0660 system audio +/dev/msm_qcelp_in 0660 system audio +/dev/msm_evrc_in 0660 system audio +/dev/msm_amrnb_in 0640 system audio +/dev/msm_a2dp_in 0660 system audio +/dev/msm_ac3 0660 system audio +/dev/msm_acdb 0660 system audio +/dev/msm_cad 0660 system audio +/dev/msm_fm 0660 system audio +/dev/msm_mvs 0660 system audio +/dev/msm_pcm_lp_dec 0660 system audio +/dev/msm_preproc_ctl 0660 system audio +/dev/msm_rtac 0660 system audio +/dev/msm_voicememo 0660 system audio +/dev/radio0 0640 fm_radio fm_radio +/dev/smd3 0660 bluetooth net_bt_stack +/dev/smd2 0660 bluetooth net_bt_stack +/dev/ttyHSL1 0660 system system +/dev/mdm 0660 system radio +/sys/devices/virtual/smdpkt/smdcntl* open_timeout 0664 radio radio +/dev/sdio_tty_ciq_00 0660 system system +/dev/tty_sdio_00 0660 system system +/dev/ttyGS0 0660 system system +/dev/i2c-5 0660 media media + +# DVB devices +/dev/dvb/adapter0/demux* 0444 media media +/dev/dvb/adapter0/dvr* 0664 media media +/dev/dvb/adapter0/video* 0664 media media + +# native sensors +/sys/devices/i2c-12/12-* pollrate_ms 0664 system system +/sys/devices/i2c-12/12-* enable 0664 system system +/sys/devices/i2c-12/12-* poll_delay 0664 system system + +# wlan +/dev/wcnss_wlan 0660 system system +# MDM devices +/dev/block/mmcblk0p13 0660 system radio +/dev/block/mmcblk0p14 0660 system radio +/dev/block/mmcblk0p15 0660 system radio + +# for ciq bridge +/dev/ciq_bridge 0660 system system diff --git a/kernel_image/ueventd.rc b/kernel_image/ueventd.rc new file mode 100644 index 0000000..940729e --- /dev/null +++ b/kernel_image/ueventd.rc @@ -0,0 +1,114 @@ +/dev/null 0666 root root +/dev/zero 0666 root root +/dev/full 0666 root root +/dev/ptmx 0666 root root +/dev/tty 0666 root root +/dev/random 0666 root root +/dev/urandom 0666 root root +/dev/ashmem 0666 root root +/dev/binder 0666 root root + +# Anyone can read the logs, but if they're not in the "logs" +# group, then they'll only see log entries for their UID. +/dev/log/* 0666 root log + +# the msm hw3d client device node is world writable/readable +/dev/msm_hw3dc 0666 root root + +# gpu driver for adreno200 is globally accessible +/dev/kgsl 0666 root root + +# kms driver for drm based gpu +/dev/dri/* 0666 root graphics + +# these should not be world writable +/dev/diag 0660 radio radio +/dev/diag_arm9 0660 radio radio +/dev/android_adb 0660 adb adb +/dev/android_adb_enable 0660 adb adb +/dev/ttyMSM0 0600 bluetooth bluetooth +/dev/uhid 0660 system net_bt_stack +/dev/uinput 0660 system net_bt_stack +/dev/alarm 0664 system radio +/dev/tty0 0660 root system +/dev/graphics/* 0660 system graphics +/dev/msm_hw3dm 0660 system graphics +/dev/input/* 0660 root input +/dev/eac 0660 root audio +/dev/cam 0660 root camera +/dev/pmem 0660 system graphics +/dev/pmem_adsp* 0660 system audio +/dev/pmem_camera* 0660 system camera +/dev/oncrpc/* 0660 root system +/dev/adsp/* 0660 system audio +/dev/snd/* 0660 system audio +/dev/mt9t013 0660 system system +/dev/msm_camera/* 0660 system system +/dev/akm8976_daemon 0640 compass system +/dev/akm8976_aot 0640 compass system +/dev/akm8973_daemon 0640 compass system +/dev/akm8973_aot 0640 compass system +/dev/bma150 0640 compass system +/dev/cm3602 0640 compass system +/dev/akm8976_pffd 0640 compass system +/dev/lightsensor 0640 system system +/dev/msm_pcm_out* 0660 system audio +/dev/msm_pcm_in* 0660 system audio +/dev/msm_pcm_ctl* 0660 system audio +/dev/msm_snd* 0660 system audio +/dev/msm_mp3* 0660 system audio +/dev/audience_a1026* 0660 system audio +/dev/audience_a2220 0660 system audio +/dev/tpa2018d1* 0660 system audio +/dev/msm_audpre 0660 system audio +/dev/msm_audio_ctl 0660 system audio +/dev/htc-acoustic 0660 system audio +/dev/vdec 0660 system audio +/dev/q6venc 0660 system audio +/dev/snd/dsp 0660 system audio +/dev/snd/dsp1 0660 system audio +/dev/snd/mixer 0660 system audio +/dev/smd0 0640 radio radio +/dev/qmi 0640 radio radio +/dev/qmi0 0640 radio radio +/dev/qmi1 0640 radio radio +/dev/qmi2 0640 radio radio +/dev/bus/usb/* 0660 root usb +/dev/mtp_usb 0660 root mtp +/dev/usb_accessory 0660 root usb +/dev/tun 0660 system vpn + +# CDMA radio interface MUX +/dev/ts0710mux* 0640 radio radio +/dev/ppp 0660 radio vpn + +# sysfs properties +/sys/devices/virtual/input/input* enable 0660 root input +/sys/devices/virtual/input/input* poll_delay 0660 root input +/sys/devices/virtual/usb_composite/* enable 0664 root system +# sensor sysfs properties +/sys/devices/virtual/input/input* poll_delay 0660 system radio +/sys/devices/virtual/input/input* enable 0660 system radio +/sys/devices/virtual/input/input* acc_enable 0660 system radio +/sys/devices/virtual/input/input* gyro_enable 0660 system radio +/sys/devices/virtual/input/input* acc_delay 0660 system radio +/sys/devices/virtual/input/input* gyro_delay 0660 system radio +#for sensor +/dev/mpu 0660 system system +/dev/mpuirq 0660 system system +/dev/timerirq 0660 system system +/dev/alps_io 0660 system system +# sensorhub +/dev/ssp_sensorhub 0660 system system + +# for usb printer +/dev/bus/usb/* 0660 system usb +/dev/usb/lp* 0660 system usb + +#permission for dun +/dev/dun 0660 system system + +# for PL2303 driver +/dev/ttyUSB* 0660 system usb +# for csvt +/dev/ttyUSB0 0660 system radio diff --git a/Драйвера на телефон - QualcommDrv.zip b/Драйвера на телефон - QualcommDrv.zip new file mode 100644 index 0000000..7f1a8f0 Binary files /dev/null and b/Драйвера на телефон - QualcommDrv.zip differ