Commit graph

3468 commits

Author SHA1 Message Date
TreeHugger Robot
4eba688673 Merge "update error on ROM 7219510" into sc-dev 2021-03-19 03:51:31 +00:00
Kris Chen
09996bc810 Add sepolicy rules for fingerprint hal
Fixes the following avc denials:
03-18 11:23:15.692   956   956 I android.hardwar: type=1400 audit(0.0:7): avc: denied { read write } for name="trusty-ipc-dev0" dev="tmpfs" ino=691 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:tee_device:s0 tclass=chr_file permissive=1
03-18 11:23:15.692   956   956 I android.hardwar: type=1400 audit(0.0:8): avc: denied { open } for path="/dev/trusty-ipc-dev0" dev="tmpfs" ino=691 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:tee_device:s0 tclass=chr_file permissive=1
03-18 11:23:15.692   956   956 I android.hardwar: type=1400 audit(0.0:9): avc: denied { ioctl } for path="/dev/trusty-ipc-dev0" dev="tmpfs" ino=691 ioctlcmd=0x7280 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:tee_device:s0 tclass=chr_file permissive=1
03-18 11:40:56.072   973   973 I fingerprint@2.1: type=1400 audit(0.0:39): avc: denied { search } for name="battery" dev="sysfs" ino=66502 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:sysfs_batteryinfo:s0 tclass=dir permissive=1
03-18 11:40:56.072   973   973 I fingerprint@2.1: type=1400 audit(0.0:40): avc: denied { read } for name="temp" dev="sysfs" ino=66520 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:sysfs_batteryinfo:s0 tclass=file permissive=1
03-18 11:40:56.072   973   973 I fingerprint@2.1: type=1400 audit(0.0:41): avc: denied { open } for path="/sys/devices/platform/google,battery/power_supply/battery/temp" dev="sysfs" ino=66520 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:sysfs_batteryinfo:s0 tclass=file permissive=1
03-18 14:11:23.476   979   979 I fingerprint@2.1: type=1400 audit(0.0:13): avc: denied { search } for name="battery" dev="sysfs" ino=66502 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:sysfs_batteryinfo:s0 tclass=dir permissive=1
03-18 12:03:08.248   978   978 I android.hardwar: type=1400 audit(0.0:9): avc: denied { create } for scontext=u:r:hal_fingerprint_default:s0 tcontext=u:r:hal_fingerprint_default:s0 tclass=netlink_socket permissive=1
03-18 12:03:08.248   978   978 I android.hardwar: type=1400 audit(0.0:10): avc: denied { bind } for scontext=u:r:hal_fingerprint_default:s0 tcontext=u:r:hal_fingerprint_default:s0 tclass=netlink_socket permissive=1
03-18 12:03:08.248   978   978 I android.hardwar: type=1400 audit(0.0:11): avc: denied { write } for scontext=u:r:hal_fingerprint_default:s0 tcontext=u:r:hal_fingerprint_default:s0 tclass=netlink_socket permissive=1
03-18 12:03:08.248   978   978 I android.hardwar: type=1400 audit(0.0:12): avc: denied { read } for scontext=u:r:hal_fingerprint_default:s0 tcontext=u:r:hal_fingerprint_default:s0 tclass=netlink_socket permissive=1
03-18 12:56:30.446   404   404 E SELinux : avc:  denied  { add } for interface=vendor.goodix.hardware.biometrics.fingerprint::IGoodixFingerprintDaemon sid=u:r:hal_fingerprint_default:s0 pid=967 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:default_android_hwservice:s0 tclass=hwservice_manager permissive=1

Bug: 171943101
Test: No above avc denials in logcat.
Change-Id: I67b397f86c39625b77ebe6d32d37e42cd87b3f93
2021-03-19 03:41:18 +00:00
TreeHugger Robot
46b51cd204 Merge "power: Add policy to access sysfs_bcl" into sc-dev 2021-03-19 03:39:32 +00:00
Adam Shih
8d2feed7ed label missing vibrator sys nodes
Bug: 182954060
Test: boot with no avc error found
Change-Id: I1ffd97c6646d106c88efe36bfb4483ae44415eaa
2021-03-19 11:14:36 +08:00
TreeHugger Robot
71f0fd6e55 Merge "Allow fingerprint hal to access fingerprint device" into sc-dev am: 9a865e84c7
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13918106

Change-Id: I7f56e90224fe24568d84bcdd4a6a91deed3194bb
2021-03-19 03:08:00 +00:00
George Lee
9c3d77d088 power: Add policy to access sysfs_bcl
Bug: 180620276
Test: adb bugreport
dumpstate_board.txt shows:
------ BCL (/sys/devices/virtual/pmic/mitigation/triggered_stats) ------
Source    	Count	Last Triggered	Last SOC	Last Voltage
smpl_warn      	0	0		0		0
ocp_cpu1       	0	0		0		0
ocp_cpu2       	0	0		0		0
soft_ocp_cpu1  	0	0		0		0
soft_ocp_cpu2  	0	0		0		0
ocp_tpu        	0	0		0		0
soft_ocp_tpu   	0	0		0		0
pmic_120c      	0	0		0		0
pmic_140c      	0	0		0		0
pmic_overheat  	0	0		0		0
ocp_gpu        	0	0		0		0
soft_ocp_gpu   	0	0		0		0

------ IF PMIC (/sys/devices/virtual/pmic/max77759-mitigation/triggered_stats) ------
Source    	Count	Last Triggered	Last SOC	Last Voltage
VDROOP1        	0	0		0		0
VDROOP2        	0	0		0		0
BATOILO        	0	0		0		0

Signed-off-by: George Lee <geolee@google.com>
Change-Id: If7874e19b8202175071d474502e77748168565ce
2021-03-19 02:56:32 +00:00
Adam Shih
857ea2e064 update error on ROM 7219510
Bug: 183161715
Test: pts-tradefed run pts -m PtsSELinuxTest
Change-Id: Id5c7856e7b77600f47df652a95ac342f11c924f5
2021-03-19 10:52:09 +08:00
TreeHugger Robot
9a865e84c7 Merge "Allow fingerprint hal to access fingerprint device" into sc-dev 2021-03-19 02:19:59 +00:00
David Li
fa11af6a07 audio: add /dev/acd-audio_dcdoff_ref for audio effect visualizer
Set /dev/acd-audio_dcdoff_ref as u:object_r:aoc_device:s0
crw-rw---- 1 system audio u:object_r:aoc_device:s0  500,  29 2021-03-18 22:19 /dev/acd-audio_dcdoff_ref

Bug: 180984363
Bug: 165719427
Test: make -j128
Test: ls -alZ /dev/acd-audio_dcdoff_ref
Change-Id: If7cd3ef99885730287648afebb222d4f925d325e
2021-03-19 10:10:49 +08:00
Kris Chen
10fda56cd1 Allow fingerprint hal to access fingerprint device
Fixes the following avc denials:
03-18 10:57:10.612   947   947 I android.hardwar: type=1400 audit(0.0:8): avc: denied { open } for path="/dev/goodix_fp" dev="tmpfs" ino=482 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:device:s0 tclass=chr_file permissive=1
03-18 10:57:10.632   947   947 I android.hardwar: type=1400 audit(0.0:9): avc: denied { ioctl } for path="/dev/goodix_fp" dev="tmpfs" ino=482 ioctlcmd=0x6707 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:device:s0 tclass=chr_file permissive=1
03-18 10:57:13.672   947   947 I android.hardwar: type=1400 audit(0.0:14): avc: denied { ioctl } for path="/dev/goodix_fp" dev="tmpfs" ino=482 ioctlcmd=0x6706 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:device:s0 tclass=chr_file permissive=1
03-18 10:57:32.704   947   947 I HwBinder:947_1: type=1400 audit(0.0:26): avc: denied { ioctl } for path="/dev/goodix_fp" dev="tmpfs" ino=482 ioctlcmd=0x6705 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:device:s0 tclass=chr_file permissive=1

Bug: 171943101
Test: No above avc denials in logcat.
Change-Id: I254a01a2c11fcaba9ad3f387862a8d0ddafffd38
2021-03-18 19:23:54 +08:00
TreeHugger Robot
005b56dc05 Merge "sepolicy: fix usb hal selinux permission" into sc-dev am: 2433a82427
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13899365

Change-Id: Iec98ad83437265a5b557eaaddc22d52dd7fe0269
2021-03-18 06:20:40 +00:00
TreeHugger Robot
2433a82427 Merge "sepolicy: fix usb hal selinux permission" into sc-dev 2021-03-18 05:47:52 +00:00
SalmaxChang
4393badd84 Update vendor_modem_prop and add rules for mds am: 2797490192
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13895427

Change-Id: Id23adbbf9cbf6cb7dcb76632cca5adfba44e369b
2021-03-18 05:27:50 +00:00
SalmaxChang
2797490192 Update vendor_modem_prop and add rules for mds
Bug: 181185131
Change-Id: Ie709e08152d23428a687c949359316206843b9fa
2021-03-18 04:48:19 +00:00
TreeHugger Robot
ddd3cf4514 Merge changes I15473321,Id60bb2e8 into sc-dev am: 8a191daf92
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13908551

Change-Id: I59cf2780c00e6b9b524edf0bdd7ef20c7ecc796b
2021-03-18 04:28:48 +00:00
TreeHugger Robot
8a191daf92 Merge changes I15473321,Id60bb2e8 into sc-dev
* changes:
  remove obsolete entries
  update error on ROM 7216638
2021-03-18 04:02:01 +00:00
Ines Ayara
7a8dcc0893 Merge "Add "libedgetpu_darwinn2.so" library duplicate to be used for external launch." into sc-dev am: 338d324e5a
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13904945

Change-Id: I43397196ba9d57b84bde59d1f0034b8f68052810
2021-03-18 03:41:15 +00:00
Ines Ayara
338d324e5a Merge "Add "libedgetpu_darwinn2.so" library duplicate to be used for external launch." into sc-dev 2021-03-18 02:54:19 +00:00
Adam Shih
c36661eb0b remove obsolete entries
Bug: 177389198
Bug: 177860960
Bug: 178752576
Bug: 178753472
Bug: 179310892
Bug: 179437292
Bug: 179437988
Bug: 180656125
Bug: 180960879
Bug: 182705863
Test: boot and grab bugreport with no gmscore error found
Change-Id: I154733215aeca58a76add8d346cc0016a5f0dff7
2021-03-18 10:15:43 +08:00
Adam Shih
15a0c61432 update error on ROM 7216638
Bug: 183055762
Test: pts-tradefed run pts -m PtsSELinuxTest
Change-Id: Id60bb2e822734e23803b8f937b71dc59a325c27b
2021-03-18 10:03:37 +08:00
Albert Wang
beb4f82d32 sepolicy: fix usb hal selinux permission
avc: denied { read } for name="port0-partner" dev="sysfs" ino=98412 scontext=u:r:hal_usb_impl:s0 tcontext=u:object_r:sysfs_batteryinfo:s0 tclass=dir permissive=1
avc: denied { open } for path="/sys/devices/platform/10d50000.hsi2c/i2c-6/6-0025/typec/port0/port0-partner" dev="sysfs" ino=98412 scontext=u:r:hal_usb_impl:s0 tcontext=u:object_r:sysfs_batteryinfo:s0 tclass=dir permissive=1
avc: denied { getattr } for path="/sys/devices/platform/10d50000.hsi2c/i2c-5/5-0025/typec/port0/power_role" dev="sysfs" ino=67861 scontext=u:r:hal_usb_impl:s0 tcontext=u:object_r:sysfs_batteryinfo:s0 tclass=file permissive=1
avc: denied { open } for path="/sys/devices/platform/10d50000.hsi2c/i2c-5/5-0025/typec/port0/power_role" dev="sysfs" ino=67861 scontext=u:r:hal_usb_impl:s0 tcontext=u:object_r:sysfs_batteryinfo:s0 tclass=file permissive=1
avc: denied { write } for name="port_type" dev="sysfs" ino=71778 scontext=u:r:hal_usb_impl:s0 tcontext=u:object_r:sysfs_batteryinfo:s0 tclass=file permissive=1

Bug: 182122983
Test: atest VtsHalUsbV1_0TargetTest
      atest HalUsbGadgetV1_0HostTest
Signed-off-by: Albert Wang <albertccwang@google.com>
Change-Id: Ia2cf9061dd5eaa7af582331477afd34db56531e8
2021-03-18 09:51:14 +08:00
TreeHugger Robot
2a61dddc6f Merge "Fix selinux error for vendor_init" into sc-dev am: 57ec723c5e
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13880426

Change-Id: I66406cd526eaebca4ce94ab9dd3f9594e3e1c5ae
2021-03-18 01:18:38 +00:00
TreeHugger Robot
57ec723c5e Merge "Fix selinux error for vendor_init" into sc-dev 2021-03-18 00:49:15 +00:00
iayara
adeaaead76 Add "libedgetpu_darwinn2.so" library duplicate to be used for external
launch.

This change is intended to keep naming consistency with previous
Darwinn external launch. In the future, all "libedgetpu_darwinn2.so"
instances should be replaced by "libedgetpu_util.so".

Bug: 182303547
Change-Id: I99e83f5f2e317b195b2061c781cb23544e547c55
2021-03-17 23:47:07 +00:00
Hridya Valsaraju
fed91e74ba Merge "Add a label for Pixel DMA-BUF heap tracepoints" into sc-dev am: 2f772dd166
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13896546

Change-Id: Idfe3aa3b34bb8b6b8eb8f348b940327656a96c2f
2021-03-17 22:44:05 +00:00
Hridya Valsaraju
2f772dd166 Merge "Add a label for Pixel DMA-BUF heap tracepoints" into sc-dev 2021-03-17 21:58:55 +00:00
Yu-Chi Cheng
bcb92ac0c9 Merge "Allowed Camera hal to access EdgeTPU service for on-device compilation." into sc-dev am: a802ac3b05
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13889939

Change-Id: Iff962bcb9446a4a48123dc0ff435ffd56a115079
2021-03-17 21:10:37 +00:00
Yu-Chi Cheng
a802ac3b05 Merge "Allowed Camera hal to access EdgeTPU service for on-device compilation." into sc-dev 2021-03-17 20:37:44 +00:00
Yu-Chi Cheng
86aa156202 Allowed Camera hal to access EdgeTPU service for on-device compilation.
Camera hal DarwiNN pipelines are switching to use the on-device
compilation, which achieves by talking to the EdgeTPU service.
This change added the required selinux policies to allow accessing
the service, as well as allowing file descriptors to be shared
between them for passing the compilation info around.

Bug: 182423730
Bug: 182706078
Test: verified on Oriole running camera.
Change-Id: I5d3bc84fd54d4618f505f37d9773894261061d7f
2021-03-17 08:18:55 -07:00
Aaron Tsai
185dbee4eb Fix selinux error for vendor_init
03-12 18:15:16.240  root     1     1 I /system/bin/init: type=1107 audit(0.0:19): uid=0 auid=4294967295 ses=4294967295 subj=u:r:init:s0 msg='avc: denied { set } for property=vendor.sys.modem_reset pid=354 uid=0 gid=0 scontext=u:r:vendor_init:s0 tcontext=u:object_r:vendor_sys_default_prop:s0 tclass=property_service permissive=1'

Bug: 182715587
Test: verified with the forrest ROM and error log gone
Change-Id: Icfea06220c491d414f6bdbf04ceda4c46299fb29
2021-03-17 10:14:31 +00:00
TreeHugger Robot
afdfc82734 Merge "label uwb service to prevent reset after unplugging USB" into sc-dev am: 64c726720b
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13895430

Change-Id: I7d50b4777a52b307272c8b9ab68f2eeb279ebb4d
2021-03-17 08:36:35 +00:00
Jenny Ho
673ba29390 Merge "genfs_contexts: add sepolicy for dumping eeprom data" into sc-dev am: 208d1aed01
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13895428

Change-Id: I39b601de53ad1b2ccfec2274194b9dfcb8f1dbf1
2021-03-17 08:36:13 +00:00
TreeHugger Robot
64c726720b Merge "label uwb service to prevent reset after unplugging USB" into sc-dev 2021-03-17 08:35:08 +00:00
Jenny Ho
208d1aed01 Merge "genfs_contexts: add sepolicy for dumping eeprom data" into sc-dev 2021-03-17 08:07:45 +00:00
Adam Shih
ebeae6abc3 label uwb service to prevent reset after unplugging USB
Bug: 182953824
Test: unplug USB under enforcing mode
Change-Id: Ib4bdf9b9339fc631d045bde57f78a46ce3ca8b6e
2021-03-17 15:25:27 +08:00
TreeHugger Robot
188c7e93fc Merge "sensors: Add sensor related rule to chre." into sc-dev am: b8ec327d5c
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13885466

Change-Id: I9a4f8817963617f8e212d8ffdf36a17e5580d192
2021-03-17 07:00:57 +00:00
TreeHugger Robot
b8ec327d5c Merge "sensors: Add sensor related rule to chre." into sc-dev 2021-03-17 06:28:41 +00:00
Hridya Valsaraju
a570dc6991 Add a label for Pixel DMA-BUF heap tracepoints
These tracepoint are the DMA-BUF equivalents to the ION tracepoints.
They expose the size of the DMA-BUF, unique inode number of the DMA-BUF
and total size of all DMA-BUFs exported from the DMA-BUF heap framework.

Test: build
Bug: 182328989
Change-Id: I311b68275ebd668f73d0ccff0fcaa01d251250bc
2021-03-16 23:00:41 -07:00
Adam Shih
afb246e88a Merge changes I33cd99d5,I8417d4eb into sc-dev am: 63143cdf96
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13895426

Change-Id: I9fa4c9593bb10eae995d38922a41b0ddd917e5b8
2021-03-17 05:40:37 +00:00
Jenny Ho
2dc4d2d61f genfs_contexts: add sepolicy for dumping eeprom data
I auditd  : type=1400 audit(0.0:53): avc: denied { getattr } for comm="sh" path="/sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom" dev="sysfs" ino=59692 scontext=u:r:shell:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
I sh      : type=1400 audit(0.0:53): avc: denied { getattr } for path="/sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom" dev="sysfs" ino=59692 scontext=u:r:shell:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
I auditd  : type=1400 audit(0.0:57): avc: denied { getattr } for comm="ls" path="/sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom" dev="sysfs" ino=59692 scontext=u:r:shell:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
I ls      : type=1400 audit(0.0:57): avc: denied { getattr } for path="/sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom" dev="sysfs" ino=59692 scontext=u:r:shell:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1

Bug: 182531832
Signed-off-by: Jenny Ho <hsiufangho@google.com>
Change-Id: If189575c6db8b43b59c6009378ec724bd075c0d1
2021-03-17 13:07:55 +08:00
Adam Shih
63143cdf96 Merge changes I33cd99d5,I8417d4eb into sc-dev
* changes:
  label missing power sys nodes
  update error on ROM 7213588
2021-03-17 05:03:29 +00:00
TreeHugger Robot
2d39854611 Merge "Add Sepolicy rule for connectivity monitor app" into sc-dev am: 0aef3b56c5
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13880431

Change-Id: Ia4981828bf05e6b824ab071c0475579405693bb3
2021-03-17 03:44:56 +00:00
TreeHugger Robot
0aef3b56c5 Merge "Add Sepolicy rule for connectivity monitor app" into sc-dev 2021-03-17 03:12:31 +00:00
Adam Shih
74052118a8 label missing power sys nodes
Bug: 182954169
Test: boot with no avc error found
Change-Id: I33cd99d5748dd9fc40301c460a050b6e969f30f4
2021-03-17 10:49:24 +08:00
Rick Chen
78047fa17b sensors: Add sensor related rule to chre.
[    8.417813] type=1400 audit(1615518074.988:4): avc: denied { write } for comm="sensors@2.0-ser" name="chre" dev="tmpfs" ino=908 scontext=u:r:hal_sensors_default:s0 tcontext=u:object_r:chre_socket:s0 tclass=sock_file permissive=1
[    8.418075] type=1400 audit(1615518074.988:5): avc: denied { connectto } for comm="sensors@2.0-ser" path="/dev/socket/chre" scontext=u:r:hal_sensors_default:s0 tcontext=u:r:chre:s0 tclass=unix_stream_socket permissive=1
03-12 11:01:14.988   694   694 I sensors@2.0-ser: type=1400 audit(0.0:5): avc: denied { connectto } for path="/dev/socket/chre" scontext=u:r:hal_sensors_default:s0 tcontext=u:r:chre:s0 tclass=unix_stream_socket permissive=1

Also merge two sensor_hal related files into single file.

Bug: 182523946
Test: make selinux_policy -j128 and push to device.
      No hal_sensors_default related avc deined log during boot.
Signed-off-by: Rick Chen <rickctchen@google.com>
Change-Id: I49ce71ba4703528fb2e26dd8956c4ed741337ffc
2021-03-17 10:34:14 +08:00
Benjamin Schwartz
6beac59d8d Merge "Give power stats HAL permission to read ufs stats" into sc-dev am: fe980b935b
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13881265

Change-Id: I21a2217c38a764545fc4a19b4b114eaee260efe3
2021-03-17 02:25:59 +00:00
TreeHugger Robot
120967467a Merge "allow df to collect partition info" into sc-dev am: 23017e956d
Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101-sepolicy/+/13856371

Change-Id: I53f473fa1d949eb035367b5bfa16022dd3098ebc
2021-03-17 02:25:39 +00:00
Adam Shih
7c0fd2a413 update error on ROM 7213588
Bug: 182954169
Bug: 182954060
Bug: 182954138
Bug: 182954062
Bug: 182953824
Bug: 182953825
Bug: 182954248
Test: pts-tradefed run pts -m PtsSELinuxTest
Change-Id: I8417d4ebacefa691838e25131749b0e4fd152a2f
2021-03-17 10:15:02 +08:00
Benjamin Schwartz
fe980b935b Merge "Give power stats HAL permission to read ufs stats" into sc-dev 2021-03-17 02:09:54 +00:00
TreeHugger Robot
23017e956d Merge "allow df to collect partition info" into sc-dev 2021-03-17 01:52:43 +00:00