ISO镜像默认安装非 IoT 版本 EnterpriseS,解压或使用 UltraISO 删除 sources\EI.CFG 后,可输入 IoT 密钥 CGK42-GYN6Y-VD22B-BX98W-J8JXD 切换为 IoTEnterpriseS 版本,该版本不强制执行 TPM 2.0 等要求。
由于install.wim镜像内仅包括EnterpriseS,无IoTEnterpriseS差分,安装完毕进入系统后需要重新输入上述密钥以真正切换系统版本。
对高级用户,如需安装前离线修改install.wim镜像到IoTEnterpriseS版本,执行以下命令
dism /mount-image /imagefile:install.wim /index:1 /mountDir:c:\1\
dism /image:c:\1 /set-edition:IoTEnterpriseS
dism /image:c:\1 /set-ProductKey:CGK42-GYN6Y-VD22B-BX98W-J8JXD
dism /unmount-image /mountdir:c:\1 /commit
或者手动释放镜像后在线修改,不过通过setup.exe安装可以保留应用数据升级。
https://developers.google.com/search/docs/monitor-debug/search-operators/web-search-cache
cache: 搜索运算符已经从文档删除
https://blog.cloudflare.com/zero-trust-warp-with-a-masque/
Zero Trust WARP的 MASQUE 协议支持下放WARP+,可以在设置菜单把协议从已经被屏蔽的WireGuard修改为MASQUE。
Google教你怎么一键格机
https://android.googlesource.com/platform/frameworks/base/+/8b7b2c66ca96d711fb364cbcc9d655197d9743e0%5E%21/#F0
脚本销毁密钥有点麻烦,直接删密钥材料也差不多
rm -rf /data/unencrypted/key
rm -rf /data/misc/vold/user_keys
echo c > /proc/sysrq-trigger
可在紧急情况下1秒内销毁数据
Google 怕不是傻了,把拆分包塞进主包里面。
如图所示,将 com.google.android.gms 的 base.apk 拖出来查看,发现里面还有一份 split 包。
Ignore requestLegacyPermission flag for targetSdk>=V
Previously we were ignoring legacy storage app op for apps with targetSdkVersion>=30 but some OEMs reported regression on Android U.
https://android.googlesource.com/platform/packages/providers/MediaProvider/+/54f543d4b2a652c6ece88d43a91e905aa6293661
这都能吃回去?
apex Android 15 起 android:requestLegacyExternalStorage="true" 在app适配Android15之前都有效
(我猜是三星
okhttp 有两种方法禁用 SNI
第一种用IP替换创建SSLSocket时传入的域名。稳定直观简洁。
第二种正经调用配置SNI的API,对于Android默认JSSE,设置成私有域有禁用SNI的效果,比如lan,但不能是localhost。对于BC JSSE,空列表即可禁用。
需要注意的是,想要禁用SNI必须使用okhttp 5.x版本,否则Android10以下设备会被强制设置SNI。如果必须使用4.x,可以创建SSLSocket后直接握手让okhttp来不及设置,但这也会让TLS版本和ALPN等设置一起失效,需要自行处理,否则旧设备会握手失败。
https://gist.github.com/vvb2060/d51fefce4a269d6becfe298d7b588ff1
演示了两种禁用SNI方法,当然方法2也可以自定义SNI。
小知识:保存到 AccountManager 服务的账号可以在清空应用数据后留存。Google、Microsoft、Amazon、Twitter、Facebook都支持这一功能,GitHub和Telegram虽然在 设置-账号 有显示,但不支持。
Читать полностью…
termux 已恢复更新,使用自定义链接器绕过w^x限制,因此静态构建的文件无法执行。
termux 通过手动加载文件到内存执行,达到了仅需 execute 权限的目的。
背景知识:执行文件在不触发域转换时还需要 execute_no_trans 权限,Android 仅限制了这一个权限,没有限制 execute 权限,因为 dlopen 需要它。虽然dlopen也是一种w^x违规,但Android目前只是记录警告日志,没有禁止。
另外:termux 已有3个版本,GitHub上的Android5+和Android7+,以及Play上的Android11+。
现在apk还会塞入版本控制系统的ID号,即git的HEAD sha
https://cs.android.com/android-studio/platform/tools/base/+/ddc562b75e6d77e6e40efb8fd6366c220b876298
在查看最新代码的情况下能切换分支和标签
https://cs.android.com/android/_/android/platform/frameworks/base
https://cs.android.com/android/_/android/platform/frameworks/native
Windows 11 LTSC 正式版
密钥 CGK42-GYN6Y-VD22B-BX98W-J8JXD
下载地址 https://drive.massgrave.dev/zh-cn_windows_11_enterprise_ltsc_2024_x64_dvd_cff9cd2d.iso
文件校验 https://files.rg-adguard.net/file/47c63d9a-4030-3c5a-fcea-113d36444e8a
记一次 Chrome 崩溃调查
反复测试后发现,标签页打开较大的图片文件,鼠标移向标签页标题,在显示标签页预览时chrome会崩溃。复现稳定,多张图片复现成功,网络本地图片均复现,使用canary或chromium均复现。使用Windows沙盒不能复现,确认为本地问题。
打开 chrome://crashes/ ,显示详细信息,用everything搜索uuid找到崩溃文件。
应用商店下载windbg,拖入dmp文件。
查阅 https://www.chromium.org/developers/how-tos/debugging-on-windows 对 windbg 配置符号服务器 https://chromium-browser-symsrv.commondatastorage.googleapis.com 后定位到崩溃位置 https://source.chromium.org/chromium/chromium/src/+/refs/tags/129.0.6668.71:ui/gfx/render_text_harfbuzz.cc;l=1168
阅读注释
// The |glyph_range| might be empty or invalid on Windows if a multi-character
// grapheme is divided into different runs (e.g., there are two font sizes or
// colors for a single glyph). In this case it might cause the browser crash,
// see crbug.com/526234.
net: implement the QUIC protocol in linux kernel
啊?真当成 TCP2 吗,是不是忘了QUIC为什么构建在UDP上。
https://github.com/lxin/quic
https://patchwork.kernel.org/project/netdevbpf/cover/cover.1725935420.git.lucien.xin@gmail.com/
https://source.android.com/docs/whatsnew/android-15-release
Android 15 正式发布
Cloudflare 重新开始逐步为免费计划启用 ECH
https://community.cloudflare.com/t/700863
快速查看当前客户端的 tls 和 h2 握手细节
https://tls.browserleaks.com/tls
https://tls.browserleaks.com/http2
使用场景很有限,基本只能用于 Cloudflare DNS。很久之前pixiv支持无SNI访问,这几年取消了。知名大站都是IP黑洞,不是禁用SNI可以绕过的。至于 ECH,Cloudflare 还有中国业务呢,估计不敢再开。
排查下来,除了 Cloudflare DNS 外只有一个站可用,非常可怜。还是等JDK哪天支持 HTTP3 吧。
https://openjdk.org/jeps/8291976
https://forums.developer.huawei.com/forumPortal/en/home
华为开发者论坛置顶帖子显示华为系统在23年9月1日支持了签名欺骗功能。
MicroG于23年9月15日实现了华为版签名欺骗功能。
https://github.com/microg/GmsCore/blob/master/fake-signature/src/huawei/aidl/com/huawei/signature/diff/ISignatureService.aidl
MicroG同时还实现了第三种签名欺骗系统。即other-signature以及AAAA*和NAVI*元数据。格式是 sha256(<package name>)-sha256(<signing certificate>)
https://github.com/microg/GmsCore/issues/2037
另外,LineageOS 已经官方支持 MicroG 签名欺骗。
https://github.com/LineageOS/android_frameworks_base/commit/6b793fa98a40dd6c2d6eb02988161ed123439428
100~399字重现在被砍了,原因是为了不支持可变字体的游戏引擎能够默认400字重而不是100字重,砍了400以下字重。
https://github.com/notofonts/noto-cjk/commit/07fb9c9a48ec63ba92f7bfd2608ca6fbb01940f1
Windows 11 允许第三方应用程序使用基于虚拟化的安全飞地
https://aka.ms/VBSEnclavesDevGuide
UAC只有两个模式:始终通知和允许绕过
https://devblogs.microsoft.com/oldnewthing/20160816-00/?p=94105
https://news.microsoft.com/zh-cn/腾讯应用宝与-microsoft-store-达成合作,windows-可直接运行移动应/
Читать полностью…
修复方案
修改fuse,将传入文件路径与底层文件的路径均按照常规方式转换为小写,如果字符串不相等,返回文件不存在。
因为媒体存储设备是apex模块,所以修复后可以立即由play商店推送,无需等待OTA。
修复后,自测方法中仅方法2继续有效,方法1不会发生变化。
方法3两文件名不再能相互访问,但也不能同时存在。