Skip to content

Instantly share code, notes, and snippets.

View pexcn's full-sized avatar
🇹🇼

Sing Yu Chan pexcn

🇹🇼
  • Earth ⇄ Venus
  • Cantonia, West Taiwan
View GitHub Profile
@pexcn
pexcn / SO_RCVBUF_and_SO_SNDBUF.md
Last active June 9, 2021 01:17
SO_RCVBUF and SO_SNDBUF settings
BDP = Bandwidth * RTT

e.g.:

Server
SO_RCVBUF: 125000000Bytes (1000Mbps), 0.02s (20ms)
125000000Bytes * 0.02s = 2500000Bytes
SO_SNDBUF: 125000000Bytes (1000Mbps), 0.165s (165ms)
125000000Bytes * 0.165s = 20625000Bytes
@pexcn
pexcn / modern_crypto.md
Created April 20, 2021 06:36 — forked from byronhe/modern_crypto.md
现代密码学实践指南[2015年]

现代密码学实践指南[2015年]

标签(空格分隔): 密码学


本文介绍目前现代密码学的最先进技术, 前半部分主要翻译自 《Cryptographic Right Answers》,附上收集的资料,和byron个人的理解。

@pexcn
pexcn / shadowsocks-speedtests.md
Last active August 20, 2023 12:28
Shadowsocks 各加密方式的速度测试报告

Shadowsocks 各加密方式的速度测试报告

TL;DR (仅针对当前版本)

  • 若不知道 CPU 是否支持 AES-NI, 则 chacha20-ietf-poly1305 为最稳妥的选择。
  • 若 CPU 支持 AES-NI, 则 shadowsocks-rust 选择 aes-128-gcm, shadowsocks-libev 选择 aes-256-gcm 为最佳。
@pexcn
pexcn / ss-libev-iperf.sh
Last active April 19, 2021 04:25
shadowsocks-libev 和 shadowsocks-rust 的 iperf 速度测试脚本
#!/bin/bash -e
METHOD="$1"
# prepare
docker stop iperf-client ss-client ss-server iperf-server &>/dev/null || true
docker rm iperf-client ss-client ss-server iperf-server &>/dev/null || true
# iperf server
docker run -d --rm --name iperf-server --network host pexcn/docker-images:iperf -s -B 127.0.0.1 -p 10000 >/dev/null
@pexcn
pexcn / he-ddns.sh
Last active March 9, 2021 19:08
Simple DDNS script for Hurricane Electric (dns.he.net)
#!/bin/sh -e
#
# Hurricane Electric DDNS script for OpenWrt
#
# crontab: */5 * * * * INTERFACE=pppoe-wan USE_PEERDNS=1 DOMAIN=example.com KEY=password /usr/bin/he-ddns.sh
#
set -o pipefail
INTERFACE="${INTERFACE:-pppoe-wan}"
DOMAIN="${DOMAIN:-example.com}"
# unpack
bsdcpio -id < ../extra.lzma

# repack
find . | cpio -o --format='newc' --owner root:root | lzma > ../extra.lzma
@pexcn
pexcn / dump_art_partition.md
Last active February 25, 2022 18:03
dump atheros art partition from full firmware.
# 4MB
# art: 0x003F0000-0x00400000, 65536 bytes
dd if=full.bin of=art.bin bs=1 count=65536 skip=4128768

# 8MB
# art: 0x007F0000-0x00800000, 65536 bytes
dd if=full.bin of=art.bin bs=1 count=65536 skip=8323072

# 16MB

https://www.google.com/android/uncertified

# disable root at first.

# backup
adb shell sqlite3 /data/data/com.google.android.gsf/databases/gservices.db \"select * from main where name='android_id'\"
# update
adb shell sqlite3 /data/data/com.google.android.gsf/databases/gservices.db \"update main set value='<my_certified_android_id>' where name='android_id'\"
# check

SDCard Write Speed Test

# 64k
dd if=/dev/zero of=test bs=64k count=1638 && rm -f test
dd if=/dev/zero of=test bs=64k count=1638 conv=fdatasync && rm -f test
dd if=/dev/zero of=test bs=64k count=1638 conv=fsync && rm -f test
dd if=/dev/zero of=test bs=64k count=1638 oflag=dsync && rm -f test
# 1024k
dd if=/dev/zero of=test bs=1024k count=100 &amp;&amp; rm -f test
@pexcn
pexcn / hh_repart
Last active July 5, 2022 09:53
System partition resize script for Nexus 5.
#!/sbin/sh
#
# Copyright (C) 2018 Unlegacy Android Project
# Copyright (C) 2018 Svyatoslav Ryhel
# Copyright (C) 2019 Nick80835
# Copyright (C) 2019 z3dd3r
#
# Made for Hammerhead
#