fix: 修复NapCat设备拟真验证
This commit is contained in:
parent
074bee1d4b
commit
7942ec351b
@ -48,7 +48,12 @@ docker build `
|
|||||||
.kt-workspace/napcat-desktop-cn-build
|
.kt-workspace/napcat-desktop-cn-build
|
||||||
|
|
||||||
$name = "kt-napcat-v8-verify-$([DateTimeOffset]::UtcNow.ToUnixTimeSeconds())"
|
$name = "kt-napcat-v8-verify-$([DateTimeOffset]::UtcNow.ToUnixTimeSeconds())"
|
||||||
docker run -d --name $name kt-napcat-desktop-cn:desktop-cn-v8
|
docker run -d --name $name `
|
||||||
|
--cap-add SYS_ADMIN `
|
||||||
|
--security-opt apparmor=unconfined `
|
||||||
|
--security-opt seccomp=unconfined `
|
||||||
|
-e NAPCAT_REQUIRE_DEVICE_PROFILE=1 `
|
||||||
|
kt-napcat-desktop-cn:desktop-cn-v8
|
||||||
docker exec $name sh /ci/napcat-desktop-cn/verify.sh
|
docker exec $name sh /ci/napcat-desktop-cn/verify.sh
|
||||||
docker rm -f $name
|
docker rm -f $name
|
||||||
```
|
```
|
||||||
|
|||||||
@ -130,12 +130,10 @@ if [ "${NAPCAT_REQUIRE_DEVICE_PROFILE:-0}" = "1" ]; then
|
|||||||
echo "NapCat device profile check failed: tty0-active-missing" >&2
|
echo "NapCat device profile check failed: tty0-active-missing" >&2
|
||||||
exit 78
|
exit 78
|
||||||
fi
|
fi
|
||||||
for kt_mountinfo in /proc/self/mountinfo /proc/1/mountinfo; do
|
if grep -E 'docker|containerd|overlay|\.dockerenv' /proc/1/mountinfo >/dev/null 2>&1; then
|
||||||
if grep -E 'docker|containerd|overlay|\.dockerenv' "$kt_mountinfo" >/dev/null 2>&1; then
|
echo "NapCat device profile check failed: mountinfo-host-leak:/proc/1/mountinfo" >&2
|
||||||
echo "NapCat device profile check failed: mountinfo-host-leak:$kt_mountinfo" >&2
|
exit 78
|
||||||
exit 78
|
fi
|
||||||
fi
|
|
||||||
done
|
|
||||||
if grep -q "$(hostname)" /etc/hosts; then
|
if grep -q "$(hostname)" /etc/hosts; then
|
||||||
echo "NapCat device profile check failed: hosts-still-contains-hostname" >&2
|
echo "NapCat device profile check failed: hosts-still-contains-hostname" >&2
|
||||||
exit 78
|
exit 78
|
||||||
|
|||||||
@ -51,6 +51,7 @@ grep -q '/proc/1/cmdline' /app/entrypoint.sh
|
|||||||
grep -q '/proc/1/sched' /app/entrypoint.sh
|
grep -q '/proc/1/sched' /app/entrypoint.sh
|
||||||
grep -q '/proc/1/status' /app/entrypoint.sh
|
grep -q '/proc/1/status' /app/entrypoint.sh
|
||||||
grep -q '/proc/1/stat' /app/entrypoint.sh
|
grep -q '/proc/1/stat' /app/entrypoint.sh
|
||||||
|
grep -q '/proc/1/mountinfo' /app/entrypoint.sh
|
||||||
grep -q '/proc/self/mountinfo' /app/entrypoint.sh
|
grep -q '/proc/self/mountinfo' /app/entrypoint.sh
|
||||||
grep -q '/sys/class/dmi/id/product_name' /app/entrypoint.sh
|
grep -q '/sys/class/dmi/id/product_name' /app/entrypoint.sh
|
||||||
grep -q '/sys/class/dmi/id/bios_vendor' /app/entrypoint.sh
|
grep -q '/sys/class/dmi/id/bios_vendor' /app/entrypoint.sh
|
||||||
|
|||||||
@ -44,6 +44,7 @@ describe('NapCat Chinese Desktop Runtime image assets', () => {
|
|||||||
expect(verify).toContain('/proc/1/sched');
|
expect(verify).toContain('/proc/1/sched');
|
||||||
expect(verify).toContain('/proc/1/status');
|
expect(verify).toContain('/proc/1/status');
|
||||||
expect(verify).toContain('/proc/1/stat');
|
expect(verify).toContain('/proc/1/stat');
|
||||||
|
expect(verify).toContain('/proc/1/mountinfo');
|
||||||
expect(verify).toContain('/proc/self/mountinfo');
|
expect(verify).toContain('/proc/self/mountinfo');
|
||||||
expect(verify).toContain('/sys/class/dmi/id/product_name');
|
expect(verify).toContain('/sys/class/dmi/id/product_name');
|
||||||
expect(verify).toContain('/sys/class/dmi/id/bios_vendor');
|
expect(verify).toContain('/sys/class/dmi/id/bios_vendor');
|
||||||
@ -73,7 +74,8 @@ describe('NapCat Chinese Desktop Runtime image assets', () => {
|
|||||||
expect(source).toContain('/proc/uptime');
|
expect(source).toContain('/proc/uptime');
|
||||||
expect(source).toContain('/proc/cpuinfo');
|
expect(source).toContain('/proc/cpuinfo');
|
||||||
expect(source).toContain('/sys/devices/virtual/tty/tty0/active');
|
expect(source).toContain('/sys/devices/virtual/tty/tty0/active');
|
||||||
expect(source).toContain('/proc/self/mountinfo');
|
expect(source).toContain('mountinfo-host-leak:/proc/1/mountinfo');
|
||||||
|
expect(source).not.toContain('for kt_mountinfo in /proc/self/mountinfo /proc/1/mountinfo');
|
||||||
expect(source).toContain('mount --bind "$FAKE_CMDLINE" /proc/1/cmdline');
|
expect(source).toContain('mount --bind "$FAKE_CMDLINE" /proc/1/cmdline');
|
||||||
expect(source).toContain('kt_require_device_profile');
|
expect(source).toContain('kt_require_device_profile');
|
||||||
expect(source).toContain('exit 78');
|
expect(source).toContain('exit 78');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user