Advertisement
josimarkc

INIT DARK MATTER ORIGINAL

Feb 22nd, 2020
692
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.71 KB | None | 0 0
  1. #
  2. # Copyright (C) 2013-2015 The Android-x86 Open Source Project
  3. # License: GNU Public License v2 or later
  4. #
  5.  
  6. function set_property()
  7. {
  8. setprop "$1" "$2"
  9. [ -n "$DEBUG" ] && echo "$1"="$2" >> /dev/x86.prop
  10. }
  11.  
  12. function set_prop_if_empty()
  13. {
  14. [ -z "$(getprop $1)" ] && set_property "$1" "$2"
  15. }
  16.  
  17.  
  18. function init_misc()
  19. {
  20. # device information
  21. # CHAOZHUO BEGIN
  22. ######################## manufacturer #############################
  23. #cz_manufacturer=
  24. #if [ -f /data/system/chaozhuo/cz_manufacturer ]; then
  25. # cz_manufacturer=`cat /data/system/chaozhuo/cz_manufacturer`
  26. # if [ -n "$cz_manufacturer" ]; then
  27. # setprop ro.product.manufacturer "$cz_manufacturer"
  28. # else
  29. # setprop ro.product.manufacturer "$(cat $DMIPATH/sys_vendor)"
  30. # fi
  31. #else
  32. # setprop ro.product.manufacturer "$(cat $DMIPATH/sys_vendor)"
  33. #fi
  34.  
  35. ######################## model #############################
  36. #cz_model=
  37. #if [ -f /data/system/chaozhuo/cz_model ]; then
  38. # cz_model=`cat /data/system/chaozhuo/cz_model`
  39. # if [ -n "cz_model" ]; then
  40. # setprop ro.product.model "$cz_model"
  41. # else
  42. # setprop ro.product.model "$PRODUCT"
  43. # fi
  44. #else
  45. # setprop ro.product.model "$PRODUCT"
  46. #fi
  47.  
  48. ######################## brand #############################
  49. #cz_brand=
  50. #if [ -f /data/system/chaozhuo/cz_brand ]; then
  51. # cz_brand=`cat /data/system/chaozhuo/cz_brand`
  52. # if [ -n "cz_brand" ]; then
  53. # setprop ro.product.brand "cz_brand"
  54. # else
  55. # # setprop ro.product.brand "$(cat $DMIPATH/sys_vendor)"
  56. # fi
  57. #else
  58. # setprop ro.product.manufacturer "$(cat $DMIPATH/sys_vendor)"
  59. #fi
  60. #setprop ro.product.manufacturer "$(cat $DMIPATH/sys_vendor)"
  61. #setprop ro.product.model "$PRODUCT"
  62.  
  63. #if [ ! -s /data/system/chaozhuo/cz_model ]; then
  64. # setprop ro.product.model "$PRODUCT"
  65. #else
  66. # cz_model=`cat /data/system/chaozhuo/cz_model`
  67. # if [ ! -n "$cz_model" ]; then
  68. # setprop ro.product.model "$PRODUCT"
  69. # fi
  70. #fi
  71.  
  72. #if [ ! -s /data/system/chaozhuo/cz_manufacturer ]; then
  73. # setprop ro.product.manufacturer "$(cat $DMIPATH/sys_vendor)"
  74. #else
  75. # cz_manufacturer=`cat /data/system/chaozhuo/cz_manufacturer`
  76. # if [ ! -n "$cz_manufacturer" ]; then
  77. # setprop ro.product.manufacturer "$(cat $DMIPATH/sys_vendor)"
  78. # fi
  79. #fi
  80.  
  81. # CHAOZHUO END
  82.  
  83. #setprop ro.product.manufacturer "$(cat $DMIPATH/sys_vendor)"
  84. #setprop ro.product.model "$PRODUCT"
  85.  
  86. # a hack for USB modem
  87. lsusb | grep 1a8d:1000 && eject
  88.  
  89. # in case no cpu governor driver autoloads
  90. [ -d /sys/devices/system/cpu/cpu0/cpufreq ] || modprobe acpi-cpufreq
  91.  
  92. # remove wl if it's not used
  93. local wifi
  94. if [ -d /sys/class/net/wlan0 ]; then
  95. wifi=$(basename `readlink /sys/class/net/wlan0/device/driver`)
  96. [ "$wifi" != "wl" ] && rmmod_if_exist wl
  97. fi
  98.  
  99. # enable virt_wifi if needed 8ac9fea0db77ce1ace33e04a0da9def54a92ac55
  100. local eth=getprop net.virt_wifi eth0
  101. if [ -d /sys/class/net/$eth -a "$VIRT_WIFI" != "0" ]; then
  102. if [ -n "$wifi" -a "$VIRT_WIFI" = "1" ]; then
  103. rmmod_if_exist iwlmvm $wifi
  104. fi
  105. if [ ! -d /sys/class/net/wlan0 ]; then
  106. ifconfig $eth down
  107. ip link set $eth name wifi_eth
  108. ifconfig wifi_eth up
  109. ip link add link wifi_eth name wlan0 type virt_wifi
  110. fi
  111. fi
  112. }
  113.  
  114. function init_hal_audio()
  115. {
  116. case "$PRODUCT" in
  117. VirtualBox*|Bochs*)
  118. [ -d /proc/asound/card0 ] || modprobe snd-sb16 isapnp=0 irq=5
  119. ;;
  120. *)
  121. ;;
  122. esac
  123.  
  124. if grep -qi "IntelHDMI" /proc/asound/card0/id; then
  125. [ -d /proc/asound/card1 ] || set_property ro.hardware.audio.primary hdmi
  126. fi
  127. }
  128.  
  129. function init_hal_wifi()
  130. {
  131. # BCM WiFi driver conflict start.
  132. # Broadcom BCM4311 (PCI IDs 14e4:4311, 14e4:4312)
  133. # Broadcom BCM4312 (PCI ID 14e4:4315)
  134. # Broadcom BCM4313 (PCI ID 14e4:4727)
  135. # Broadcom BCM4321 (PCI IDs 14e4:4328, 14e4:4329, 14e4:432a)
  136. # Broadcom BCM4322 (PCI IDs 14e4:432b, 14e4:432c, 14e4:432d)
  137. # Broadcom BCM43224 (PCI IDs 14e4:0576, 14e4:4353)
  138. # Broadcom BCM43225 (PCI ID 14e4:4357)
  139. # Broadcom BCM43227 (PCI ID 14e4:4358)
  140. # Broadcom BCM43228 (PCI ID 14e4:4359)
  141. # Broadcom BCM43142 (PCI ID 14e4:4365)
  142. # Broadcom BCM4331 (PCI ID 14e4:4331)
  143. # Broadcom BCM4352 (PCI ID 14e4:43b1)
  144. # Broadcom BCM4360 (PCI IDs 14e4:43a0, 14e4:4360)
  145.  
  146. BCMAID=`lspci | grep "14e4" | awk '{print $4}'`
  147.  
  148. case "${BCMAID##*:}" in
  149. 4311 | 4312 | \
  150. 4315 | \
  151. 4727 | \
  152. 4328 | 4329 | 432a | \
  153. 432b | 432c | 432d | \
  154. 0576 | 4353 | \
  155. 4357 | 4358 | 4359 | \
  156. 4365 | \
  157. 4331 | \
  158. 43b1 | \
  159. 43a0 | 4360 )
  160.  
  161. rmmod b43
  162. rmmod b44
  163. rmmod b43legacy
  164. rmmod ssb
  165. rmmod bcma
  166. rmmod brcm80211
  167. rmmod wl
  168.  
  169. modprobe wl
  170. ;;
  171. *)
  172. ;;
  173. esac
  174. # BCM WiFi driver conflict end.
  175.  
  176. # BCM SDIO WiFi driver config file start.
  177. BCMSDIO=`dmesg | grep brcmfmac | grep txt`
  178. if [ "$BCMSDIO" != "" ]; then
  179. BCMNAME=`echo $BCMSDIO | awk '{print $9}'`
  180. mount -t efivarfs none /sys/firmware/efi/efivars
  181. cp /sys/firmware/efi/efivars/nvram-74b00bd9-805a-4d61-b51f-43268123d113 /lib/firmware/$BCMNAME
  182. set_property phoenixos.brcmfmac 1
  183. fi
  184. # BCM SDIO WiFi driver config file end.
  185. }
  186.  
  187. function init_hal_bluetooth()
  188. {
  189. for r in /sys/class/rfkill/*; do
  190. type=$(cat $r/type)
  191. [ "$type" = "wlan" -o "$type" = "bluetooth" ] && echo 1 > $r/state
  192. done
  193.  
  194. case "$PRODUCT" in
  195. T10*TA|HP*Omni*)
  196. BTUART_PORT=/dev/ttyS1
  197. set_property hal.bluetooth.uart.proto bcm
  198. ;;
  199. MacBookPro8*)
  200. rmmod b43
  201. modprobe b43 btcoex=0
  202. modprobe btusb
  203. ;;
  204. *)
  205. for bt in $(busybox lsusb -v | awk ' /Class:.E0/ { print $9 } '); do
  206. chown 1002.1002 $bt && chmod 660 $bt
  207. done
  208. ;;
  209. esac
  210.  
  211. if [ -n "$BTUART_PORT" ]; then
  212. set_property hal.bluetooth.uart $BTUART_PORT
  213. chown bluetooth.bluetooth $BTUART_PORT
  214. start btattach
  215. fi
  216.  
  217. # rtl8723bs bluetooth
  218. if dmesg -t | grep -qE '8723bs.*BT'; then
  219. TTYSTRING=`dmesg -t | grep -E 'tty.*MMIO' | awk '{print $2}' | head -1`
  220. if [ -n "$TTYSTRING" ]; then
  221. echo "RTL8723BS BT uses $TTYSTRING for Bluetooth."
  222. ln -sf $TTYSTRING /dev/rtk_h5
  223. start rtk_hciattach
  224. fi
  225. fi
  226. }
  227.  
  228. function init_hal_camera()
  229. {
  230. return
  231. }
  232.  
  233. function init_hal_gps()
  234. {
  235. # TODO
  236. return
  237. }
  238.  
  239. function set_drm_mode()
  240. {
  241. case "$PRODUCT" in
  242. ET1602*)
  243. drm_mode=1366x768
  244. ;;
  245. VMware*)
  246. [ -n "$video" ] && drm_mode=$video
  247. ;;
  248. *)
  249. ;;
  250. esac
  251.  
  252. [ -n "$drm_mode" ] && set_property debug.drm.mode.force $drm_mode
  253. }
  254.  
  255. function init_uvesafb()
  256. {
  257. case "$PRODUCT" in
  258. ET2002*)
  259. UVESA_MODE=${UVESA_MODE:-1600x900}
  260. ;;
  261. *)
  262. ;;
  263. esac
  264.  
  265. modprobe uvesafb mode_option=${UVESA_MODE:-1024x768}-32 ${UVESA_OPTION:-mtrr=3 scroll=redraw}
  266. }
  267.  
  268. function init_hal_gralloc()
  269. {
  270. case "$(cat /proc/fb | head -1)" in
  271. *virtiodrmfb)
  272. if [ "$HWACCEL" != "0" ]; then
  273. set_property ro.hardware.hwcomposer drm
  274. set_property ro.hardware.gralloc gbm
  275. fi
  276. set_prop_if_empty sleep.state none
  277. ;;
  278. 0*inteldrmfb|0*radeondrmfb|0*nouveaufb|0*svgadrmfb|0*amdgpudrmfb)
  279. if [ "$HWACCEL" != "0" ]; then
  280. set_property ro.hardware.gralloc drm
  281. set_drm_mode
  282. fi
  283. ;;
  284. "")
  285. init_uvesafb
  286. ;&
  287. 0*)
  288. ;;
  289. esac
  290.  
  291. [ -n "$DEBUG" ] && set_property debug.egl.trace error
  292. }
  293.  
  294. function init_hal_hwcomposer()
  295. {
  296. # TODO
  297. return
  298. }
  299.  
  300. function init_hal_lights()
  301. {
  302. chown 1000.1000 /sys/class/backlight/*/brightness
  303. }
  304.  
  305. function init_hal_power()
  306. {
  307. for p in /sys/class/rtc/*; do
  308. echo disabled > $p/device/power/wakeup
  309. done
  310.  
  311. # TODO
  312. case "$PRODUCT" in
  313. HP*Omni*|OEMB|Surface*3|T10*TA)
  314. set_prop_if_empty sleep.state none
  315. ;;
  316. *)
  317. ;;
  318. esac
  319. }
  320.  
  321. function init_hal_sensors()
  322. {
  323. # if we have sensor module for our hardware, use it
  324. ro_hardware=$(getprop ro.hardware)
  325. [ -f /system/lib/hw/sensors.${ro_hardware}.so ] && return 0
  326.  
  327. local hal_sensors=kbd
  328. local has_sensors=true
  329. case "$(cat $DMIPATH/uevent)" in
  330. *Lucid-MWE*)
  331. set_property ro.ignore_atkbd 1
  332. hal_sensors=hdaps
  333. ;;
  334. *ICONIA*W5*)
  335. hal_sensors=w500
  336. ;;
  337. *S10-3t*)
  338. hal_sensors=s103t
  339. ;;
  340. *Inagua*)
  341. #setkeycodes 0x62 29
  342. #setkeycodes 0x74 56
  343. set_property ro.ignore_atkbd 1
  344. set_property hal.sensors.kbd.type 2
  345. ;;
  346. *TEGA*|*2010:svnIntel:*)
  347. set_property ro.ignore_atkbd 1
  348. set_property hal.sensors.kbd.type 1
  349. io_switch 0x0 0x1
  350. setkeycodes 0x6d 125
  351. ;;
  352. *DLI*)
  353. set_property ro.ignore_atkbd 1
  354. set_property hal.sensors.kbd.type 1
  355. setkeycodes 0x64 1
  356. setkeycodes 0x65 172
  357. setkeycodes 0x66 120
  358. setkeycodes 0x67 116
  359. setkeycodes 0x68 114
  360. setkeycodes 0x69 115
  361. setkeycodes 0x6c 114
  362. setkeycodes 0x6d 115
  363. ;;
  364. *tx2*)
  365. setkeycodes 0xb1 138
  366. setkeycodes 0x8a 152
  367. set_property hal.sensors.kbd.type 6
  368. set_property poweroff.doubleclick 0
  369. set_property qemu.hw.mainkeys 1
  370. ;;
  371. *MS-N0E1*)
  372. set_property ro.ignore_atkbd 1
  373. set_property poweroff.doubleclick 0
  374. setkeycodes 0xa5 125
  375. setkeycodes 0xa7 1
  376. setkeycodes 0xe3 142
  377. ;;
  378. *Aspire1*25*)
  379. modprobe lis3lv02d_i2c
  380. echo -n "enabled" > /sys/class/thermal/thermal_zone0/mode
  381. ;;
  382. *ThinkPad*Tablet*)
  383. modprobe hdaps
  384. hal_sensors=hdaps
  385. ;;
  386. *i7Stylus*|*S10T*)
  387. set_property hal.sensors.iio.accel.matrix 1,0,0,0,-1,0,0,0,-1
  388. [ -z "$(getprop sleep.state)" ] && set_property sleep.state none
  389. ;;
  390. *ST70416-6*)
  391. set_property hal.sensors.iio.accel.matrix 0,-1,0,-1,0,0,0,0,-1
  392. ;;
  393. *ONDATablet*)
  394. set_property hal.sensors.iio.accel.matrix 0,1,0,1,0,0,0,0,-1
  395. ;;
  396. *ASUSFlipTP412*)
  397. set_property hal.sensors.iio.accel.matrix 0,1,0,-1,0,0,-1,0,0
  398. ;;
  399. *)
  400. has_sensors=false
  401. ;;
  402. esac
  403.  
  404. # has iio sensor-hub?
  405. if [ -n "`ls /sys/bus/iio/devices/iio:device* 2> /dev/null`" ]; then
  406. busybox chown -R 1000.1000 /sys/bus/iio/devices/iio:device*/
  407. lsmod | grep -q hid_sensor_accel_3d && hal_sensors=hsb || hal_sensors=iio
  408. elif lsmod | grep -q lis3lv02d_i2c; then
  409. hal_sensors=hdaps
  410. fi
  411.  
  412. # TODO close Surface Pro 4 sensor until bugfix
  413. case "$(cat $DMIPATH/uevent)" in
  414. *SurfacePro4*)
  415. hal_sensors=kbd
  416. ;;
  417. *)
  418. ;;
  419. esac
  420.  
  421. set_property ro.hardware.sensors $hal_sensors
  422. [ "$hal_sensors" != "kbd" ] && has_sensors=true
  423. set_property config.override_forced_orient $has_sensors
  424. }
  425.  
  426. function create_pointercal()
  427. {
  428. if [ ! -e /data/misc/tscal/pointercal ]; then
  429. mkdir -p /data/misc/tscal
  430. touch /data/misc/tscal/pointercal
  431. chown 1000.1000 /data/misc/tscal /data/misc/tscal/*
  432. chmod 775 /data/misc/tscal
  433. chmod 664 /data/misc/tscal/pointercal
  434. fi
  435. }
  436.  
  437. function init_tscal()
  438. {
  439. case "$PRODUCT" in
  440. ST70416-6*)
  441. modprobe gslx680_ts_acpi
  442. ;&
  443. T91|T101|ET2002|74499FU|945GSE-ITE8712|CF-19[CDYFGKLP]*)
  444. create_pointercal
  445. return
  446. ;;
  447. *)
  448. ;;
  449. esac
  450.  
  451. for usbts in $(lsusb | awk '{ print $6 }'); do
  452. case "$usbts" in
  453. 0596:0001|0eef:0001)
  454. create_pointercal
  455. return
  456. ;;
  457. *)
  458. ;;
  459. esac
  460. done
  461. }
  462.  
  463. function init_ril()
  464. {
  465. case "$(cat $DMIPATH/uevent)" in
  466. *TEGA*|*2010:svnIntel:*|*Lucid-MWE*)
  467. set_property rild.libpath /system/lib/libhuaweigeneric-ril.so
  468. set_property rild.libargs "-d /dev/ttyUSB2 -v /dev/ttyUSB1"
  469. set_property ro.radio.noril no
  470. ;;
  471. *)
  472. set_property ro.radio.noril yes
  473. ;;
  474. esac
  475. }
  476.  
  477. function init_cpu_governor()
  478. {
  479. governor=$(getprop cpu.governor)
  480.  
  481. [ $governor ] && {
  482. for cpu in $(ls -d /sys/devices/system/cpu/cpu?); do
  483. echo $governor > $cpu/cpufreq/scaling_governor || return 1
  484. done
  485. }
  486. }
  487.  
  488. # function phoenixos_compat()
  489. # {
  490. # PHOENIX_LOG=/data/system/phoenixos.log
  491. # PHOENIX_LOG1=/data/system/phoenixos1.log
  492. # PHOENIX_TEMP=/data/system/tmp
  493. # PHOENIX_DISK=`cat /data/system/phoenixlog.addr`
  494. # PHOENIX_COMPAT_BIN=/system/xbin/phoenix_compat
  495. #
  496. # if [ -f /data/system/phoenixlog.dir ]; then
  497. # PHOENIX_DIR=`cat /data/system/phoenixlog.dir`
  498. # else
  499. # PHOENIX_DIR=PhoenixOS
  500. # fi
  501. #
  502. # if [ $1 = "cmdline" ]; then
  503. # sed -i '5s/^.*$/boot: cmdline/' $PHOENIX_LOG
  504. # else
  505. # if [ $1 = "android" ]; then
  506. # sed -i '5s/^.*$/boot: android/' $PHOENIX_LOG
  507. # else
  508. # sed -i '5s/^.*$/boot: phoenixos/' $PHOENIX_LOG
  509. # fi
  510. #
  511. # $PHOENIX_COMPAT_BIN $1
  512. # cp -f $PHOENIX_LOG1 $PHOENIX_LOG
  513. # fi
  514. #
  515. # mount $PHOENIX_DISK $PHOENIX_TEMP
  516. # cp -f $PHOENIX_LOG $PHOENIX_TEMP/$PHOENIX_DIR
  517. # umount $PHOENIX_TEMP
  518. # }
  519.  
  520. function do_init()
  521. {
  522. # phoenixos_compat cmdline
  523.  
  524. init_misc
  525. init_hal_audio
  526. init_hal_wifi
  527. init_hal_bluetooth
  528. init_hal_camera
  529. init_hal_gps
  530. init_hal_gralloc
  531. init_hal_hwcomposer
  532. init_hal_lights
  533. init_hal_power
  534. init_hal_sensors
  535. init_tscal
  536. init_ril
  537. post_init
  538. }
  539.  
  540. function do_netconsole()
  541. {
  542. modprobe netconsole netconsole="@/,@$(getprop dhcp.eth0.gateway)/"
  543. }
  544.  
  545. function do_bootanim()
  546. {
  547. # phoenixos_compat android
  548.  
  549. [ -n "$(getprop phoenixos.brcmfmac)" ] && rmmod brcmfmac && modprobe brcmfmac
  550. }
  551.  
  552. function do_bootcomplete()
  553. {
  554. # phoenixos_compat phoenixos
  555.  
  556. init_cpu_governor
  557.  
  558. [ -z "$(getprop persist.sys.root_access)" ] && setprop persist.sys.root_access 3
  559.  
  560. lsmod | grep -Ehq "brcmfmac|rtl8723be" && setprop wlan.no-unload-driver 1
  561.  
  562. case "$PRODUCT" in
  563. 1866???|1867???|1869???) # ThinkPad X41 Tablet
  564. start tablet-mode
  565. start wacom-input
  566. setkeycodes 0x6d 115
  567. setkeycodes 0x6e 114
  568. setkeycodes 0x69 28
  569. setkeycodes 0x6b 158
  570. setkeycodes 0x68 172
  571. setkeycodes 0x6c 127
  572. setkeycodes 0x67 217
  573. ;;
  574. 6363???|6364???|6366???) # ThinkPad X60 Tablet
  575. ;&
  576. 7762???|7763???|7767???) # ThinkPad X61 Tablet
  577. start tablet-mode
  578. start wacom-input
  579. setkeycodes 0x6d 115
  580. setkeycodes 0x6e 114
  581. setkeycodes 0x69 28
  582. setkeycodes 0x6b 158
  583. setkeycodes 0x68 172
  584. setkeycodes 0x6c 127
  585. setkeycodes 0x67 217
  586. ;;
  587. 7448???|7449???|7450???|7453???) # ThinkPad X200 Tablet
  588. start tablet-mode
  589. start wacom-input
  590. setkeycodes 0xe012 158
  591. setkeycodes 0x66 172
  592. setkeycodes 0x6b 127
  593. ;;
  594. *)
  595. ;;
  596. esac
  597.  
  598. post_bootcomplete
  599. }
  600.  
  601. PATH=/sbin:/system/bin:/system/xbin
  602.  
  603. DMIPATH=/sys/class/dmi/id
  604. BOARD=$(cat $DMIPATH/board_name)
  605. PRODUCT=$(cat $DMIPATH/product_name)
  606.  
  607. # import cmdline variables
  608. for c in `cat /proc/cmdline`; do
  609. case $c in
  610. BOOT_IMAGE=*|iso-scan/*|*.*=*)
  611. ;;
  612. *=*)
  613. eval $c
  614. if [ -z "$1" ]; then
  615. case $c in
  616. DEBUG=*)
  617. [ -n "$DEBUG" ] && set_property debug.logcat 1
  618. ;;
  619. esac
  620. fi
  621. ;;
  622. esac
  623. done
  624.  
  625. [ -n "$DEBUG" ] && set -x || exec &> /dev/null
  626.  
  627. # import the vendor specific script
  628. # hw_sh=/vendor/etc/init.sh
  629. # [ -e $hw_sh ] && source $hw_sh
  630.  
  631. case "$1" in
  632. netconsole)
  633. [ -n "$DEBUG" ] && do_netconsole
  634. # phoenixos_compat
  635. ;;
  636. bootcomplete)
  637. do_bootcomplete
  638. ;;
  639. bootanim)
  640. do_bootanim
  641. ;;
  642. init|"")
  643. do_init
  644. ;;
  645. esac
  646. return 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement