Android16 堪比分区存储的破坏性变化来了,可以选择退出一个版本。
http://android-developers.googleblog.com/2025/01/orientation-and-resizability-changes-in-android-16.html
目前确实有不使用ART内部结构的绕过方案,但性能不太好,或者需要原生库,并且可以被轻易封锁,因此对于Android大版本更新导致崩溃的可能性完全没有区别。依赖ART内部结构的 hiddenapibypass 从原理上不可能被封锁。如果对此感兴趣,可以看 https://github.com/LSPosed/AndroidHiddenApiBypass/issues/52#issuecomment-2602654071
Читать полностью…GitHub为公开仓库提供了 arm64 的 Ubuntu 24.04 运行器,但是没有KVM。Google也未提供 Linux arm64 的aapt2构建工具。
所以不论是构建还是测试,新运行器都与最流行的arm平台——Android无关
发现ASS字幕也属于媒体文件,MIME类型是音频。可能是为了让播放器不需要完全文件访问权限来自动加载外部字幕?
Читать полностью…虚拟机权限 android.permission.MANAGE_VIRTUAL_MACHINE 和 android.permission.USE_CUSTOM_VIRTUAL_MACHINE 是 development 权限,可以使用pm grant授予,意味着第三方应用可以不解锁bootloader运行自定义虚拟机。Android 16 DP2 已经提供了官方Debian虚拟机,只是终端极其难用,还是等民间高手开发第三方app吧。
Читать полностью…通过 gms 间接修改 device_config
对gms发送广播
操作 com.google.android.gms.phenotype.FLAG_OVERRIDE
额外字符串 package
额外字符串 user
额外字符串数组 flags
额外字符串数组 values
额外字符串数组 types
字符串数组是为了一次修改同一组内的多个配置
示例
am broadcast -a com.google.android.gms.phenotype.FLAG_OVERRIDE
--es package 'com.google.android.configupdater'
--es user '*'
--esa flags 'CarrierIdentification__metadata_url'
--esa values 'https://www.gstatic.com/android/config_update/110618-carrier-id-metadata.txt'
--esa types 'string'
com.google.android.gms
云存储应用可以向存储访问框架(SAF)提供文件或者目录级的访问权限,供其它应用使用。其它应用经过用户授权后,可以随时读写。云存储应用稍后把本地变更同步至云端。
这本来是存储访问框架的设计用途,但几乎没人用,只能怪Google自己的云端硬盘也不支持授权目录权限吧…本来可以成为一个超方便的通用云备份入口。
在任何文件管理器中获取不受限访问权
对以下字符串添加书签或收藏/storage/emulated/0
具体是在用户ID前添加零宽空格,其它用户也行:/storage/emulated/10
即可完全绕过fuse的路径比较,自由访问Android/data,Android/obb,甚至被隐藏的内部文件夹 /storage/emulated/0/.transforms
由于大量由工厂配置的认证密钥被公开泄露并且遭到滥用,Google 在 2024 年 10 月 25 日向合作伙伴发出公告。
受影响的 OEM 正在更新密钥箱,以消除对用户设备的潜在影响。
https://apvi.issues.chromium.org/issues/375543080
11月安全更新已经在Android框架修复
作为fuse后端的媒体存储框架app,现在会循环获取父级目录,与data/obb/sandbox目录比较是否inode相同,完整修复了该问题。
总结,在Windows平台使用终端正确计算字符串的散列,应该
cmd:非ASCII字符需要确认代码页,可以用set /p魔法输出无\r\n字符串,用echo需要注意空格问题
pwsh7:使用[System.Text.Encoding]::UTF8.GetBytes()输出无\r\n字符串
pwsh5:无法输出不带\r\n的字符串,需要关闭全局UTF-8避免BOM
git bash:echo -n
ps:不调用外部程序就没这些事了!是 .net 不够用吗,是 Linux 习惯害人(
系统区域设置 > 对非Unicode程序使用UTF-8:关
cmd 使用 GB 18030
PowerShell 5 默认使用ASCII,需要指定为UTF-8
PowerShell 7 默认使用UTF-8
Linux 内核不再删除默认可忽略代码点
https://github.com/torvalds/linux/commit/5c26d2f1d3f5e4be3e196526bead29ecb139cf91
https://r.android.com/3304855
这个安全漏洞导致上游Linux修改行为,因为在具有F属性的文件夹下,路径比较逻辑会被绕过,相当于它有了无数别名。
另外,C+F casefold 依然有效,路径中包含s或ff等的继续受影响,具体列表参考 https://www.unicode.org/Public/UCD/latest/ucd/CaseFolding.txt
「可能会出现间歇性崩溃和其他稳定性问题」,这个「可能」用得好,目前hiddenapibypass库可能导致的崩溃完全是ART自己的问题,参考
真正会导致应用崩溃的ART变化可不是仅仅只是「可能」发生。变化了就修呗,每个大版本更新都需要适配隐藏API变化不是很正常?
事实上 Android16 发布说明这段提示是有前因后果的。确实有一个目前还 未合并 的ART修改会导致崩溃,Google员工开了 issue 通知我们,我们推出5.0版本兼容了这个变化。但是Google很不满意我们使用ART内部结构,要求我们只使用公开API,并且表示应用开发者只应该使用公开API,有需要应该向Google提出功能需求。最后在不包括这个ART变化的 Android16 beta1 中指责了 hiddenapibypass「可能」导致崩溃。
唉,Google这也太虚伪了。所有开发者都公认的最常见需求,没有之一,是 SystemProperties.get() 。这是一个sdk API,没错,Google已经承诺它受支持,但不是public-api,因此对开发者不可见。等什么时候Google把 SystemProperties 从 sdk 升级成 public-api,我才信它会听取开发者的隐藏API需求。
https://github.com/chenxiaolong/RSAF
将 rclone 的丰富云存储支持转化为SAF文档提供器给第三方应用使用
SELinux上下文限制了第三方应用的能力,主要是虚拟机内外共享文件夹功能。难办,这终端应用它有特权上下文 vmlauncher_app 。
Читать полностью…https://github.com/torvalds/linux/commit/231825b2e1ff6ba799c5eaf396d3ab2354e37c6b
长度变化+破坏哈希,让 f2fs 烂掉导致内核回退了(之前就想说修复补丁很脏
https://lore.kernel.org/lkml/CAHk-=wgF7AjODAyO9n+8SfTiQd9-=zTLKh4SQP-xEpeMUPHvAw@mail.gmail.com/
忽略大小写已经够烦人了,大小写折叠简直就是噩梦
The correct solution is to not do case folding in filesystems, but sadly, people seem to never really understand that. People still see it as a feature, not a bug.
额外小知识:
所谓内部存储空间(显示为设备名字),其实是由外部存储设备(com.android.externalstorage)提供给SAF的。
而最近/图片/视频/音频/文档,则是由媒体存储设备(com.android.providers.media.module)提供给SAF。
最后,下载由内容下载管理器(com.android.providers.downloads)提供。
SAF本身(com.android.documentsui) 并无存储访问权限,它只是中介,让用户浏览并且授权的界面。
PS:在高版本系统中,媒体存储设备也负责fuse。为什么不是外部存储设备?为了同步媒体数据库状态和底层文件系统。
不支持该API只能写入单个文件,但这也足够用于简单备份。aegis 实现了一个我期待很久的功能:无网络权限云备份!
Читать полностью…我们从 2024.2 开始已经捆绑了语言包插件,所以您无需下载安装,只需要在欢迎界面的 Customize 选项卡下选择您的语言为简体中文,或者从 Settings | Appearance & Behavior | System Settings | Language and Region > Language 中选择语言为简体中文,即可设置你需要的语言。
Windows计划任务启动的进程,优先级默认是7:线程优先级低于正常,IO优先级低,内存优先级低。
控制面板不能调整优先级,也没有显示。需要用powershell或者导出xml修改后导入。
https://learn.microsoft.com/zh-cn/windows/win32/taskschd/taskschedulerschema-priority-settingstype-element
https://devblogs.microsoft.com/oldnewthing/20241031-00/?p=110443
来长见识(评论区更精彩
ML-KEM 已来
测试地址 https://pq.cloudflareresearch.com
Cloudflare的密码学库和Google的BoringSSL已经支持,Chromium默认启用
Enable ML-KEM by default
https://chromium-review.googlesource.com/c/chromium/src/+/5908098
Implement X25519MLKEM768 for TLS
https://boringssl-review.googlesource.com/c/boringssl/+/70547
kem: add X25519MLKEM768 TLS hybrid KEM
https://github.com/cloudflare/circl/releases/tag/v1.5.0
系统区域设置 > 对非Unicode程序使用UTF-8:开
cmd 使用 UTF-8
PowerShell 5 默认使用ASCII,需要指定为UTF-8。系统添加BOM。
PowerShell 7 默认使用UTF-8。
Windows shell将文本通过管道传递到外部程序的行为调查
cmd
echo的第一个空格后,至管道前的全部字符在添加\r\n后输出。管道原样传递。
PowerShell 7(Windows商店安装)
echo自动删除空格和引号,与Linux平台行为类似但不添加\r\n。管道后执行外部程序时添加\r\n。
PowerShell 5(Windows自带)
echo自动删除空格和引号,与Linux平台行为类似但不添加\r\n。管道后执行外部程序时添加BOM和\r\n。
网友收集的允许无SNI服务器列表,和自定义SNI能绕过GFW列表。
https://raw.githubusercontent.com/SpaceTimee/Cealing-Host/main/Cealing-Host.json