https://letsencrypt.org/2023/07/10/cross-sign-expiration
小知识,Android Chrome 115 起启用自带根证书库,120 起强制启用,是Chrome支持平台中最晚启用的。
可访问 https://valid-isrgrootx2.letsencrypt.org/ 测试,它不受 Android 13 信任,但受 Chrome 根证书存储库信任。
因此 2024 年 6 月后,不论是Firefox还是Chrome都不会有网页访问问题。
小知识,Android Chrome 115 起启用自带根证书库,120 起强制启用,是Chrome支持平台中最晚启用的。
可访问 https://valid-isrgrootx2.letsencrypt.org/ 测试,它不受 Android 13 信任,但受 Chrome 根证书存储库信任。
因此 2024 年 6 月后,不论是Firefox还是Chrome都不会有网页访问问题。
letsencrypt.org
Shortening the Let's Encrypt Chain of Trust
When Let’s Encrypt first launched, we needed to ensure that our certificates were widely trusted. To that end, we arranged to have our intermediate certificates cross-signed by IdenTrust’s DST Root CA X3. This meant that all certificates issued by those intermediates…
南宫雪珊
一直苦于mount(2)没有xxxxat系列让它能通过fd操作,必须使用当前挂载命名空间内的路径实在是非常不便。结果,只是手册补丁还没合并。系统调用早有了: https://people.kernel.org/brauner/mounting-into-mount-namespaces It is a powerful delegation mechanism making it possible to inject mounts into lesser privileged mount namespace…
GitHub
add statmount(2) syscall · torvalds/linux@46eae99
Add a way to query attributes of a single mount instead of having to parse
the complete /proc/$PID/mountinfo, which might be huge.
Lookup the mount the new 64bit mount ID. If a mount needs to be ...
the complete /proc/$PID/mountinfo, which might be huge.
Lookup the mount the new 64bit mount ID. If a mount needs to be ...
南宫雪珊
https://github.com/torvalds/linux/commit/46eae99ef73302f9fb3dddcd67c374b3dffe8fd6
GitHub
add listmount(2) syscall · torvalds/linux@b4c2bea
Add way to query the children of a particular mount. This is a more
flexible way to iterate the mount tree than having to parse
/proc/self/mountinfo.
Lookup the mount by the new 64bit mount ID. I...
flexible way to iterate the mount tree than having to parse
/proc/self/mountinfo.
Lookup the mount by the new 64bit mount ID. I...
南宫雪珊
https://github.com/torvalds/linux/commit/b4c2bea8ceaa50cd42a8f73667389d801a3ecf2d
看来大家都意识到了一切皆文件行不通,序列化再反序列化是自讨苦吃。
什么时候加一个maps的syscall(
什么时候加一个maps的syscall(
小米的澎湃搞了一个和 Key Attestation 有点类似的东西,不过只能看是否解锁bootloader,全程使用 json,乏善可陈。硬件层接口的包装器在 com.xiaomi.trustservice 这个app里面,没开R8混淆,接口设计一目了然。
小米没有公布验签算法和公钥,需要上传到小米服务器才能知道签名是否正确,没意思。
https://dev.mi.com/distribute/doc/details?pId=1746
小米没有公布验签算法和公钥,需要上传到小米服务器才能知道签名是否正确,没意思。
https://dev.mi.com/distribute/doc/details?pId=1746
南宫雪珊
小米的澎湃搞了一个和 Key Attestation 有点类似的东西,不过只能看是否解锁bootloader,全程使用 json,乏善可陈。硬件层接口的包装器在 com.xiaomi.trustservice 这个app里面,没开R8混淆,接口设计一目了然。 小米没有公布验签算法和公钥,需要上传到小米服务器才能知道签名是否正确,没意思。 https://dev.mi.com/distribute/doc/details?pId=1746
没有完全反编译确认细节。小米可能不是把JSON送进TEE让TA填充 unlock_l2 字段然后签名。如果仅仅在用户空间获取解锁状态然后签名,这可以被定制系统篡改。
以这套API的其它功能(检测恶意应用和模拟触摸)判断,它不是一个严肃的安全功能。所以非常可能只是在用户空间从TEE拿了一个是否解锁的bool,比如通过 QSEECom API。
以这套API的其它功能(检测恶意应用和模拟触摸)判断,它不是一个严肃的安全功能。所以非常可能只是在用户空间从TEE拿了一个是否解锁的bool,比如通过 QSEECom API。
Android 远程 lldb 连接记录
PC 端
adb push ndk\toolchains\llvm\prebuilt\windows-x86_64\lib\clang\17\lib\linux\aarch64\lldb-server /data/local/tmp
Android 端
su
cd /data/local/tmp
chmod +x lldb-server
./lldb-server p --server --listen unix-abstract:///debug
supolicy --live "allow adbd magisk unix_stream_socket connectto"
或者使用路径模式
./lldb-server p --server --listen unix://debug
chmod 666 debug
chcon u:object_r:magisk_file:s0 debug
PC 端
cd ndk\toolchains\llvm\prebuilt\windows-x86_64\python3
..\bin\lldb
(lldb) platform select remote-android
(lldb) platform connect unix-abstract-connect:///debug
如果使用路径模式
(lldb) platform connect unix-connect:///data/local/tmp/debug
PC 端
adb push ndk\toolchains\llvm\prebuilt\windows-x86_64\lib\clang\17\lib\linux\aarch64\lldb-server /data/local/tmp
Android 端
su
cd /data/local/tmp
chmod +x lldb-server
./lldb-server p --server --listen unix-abstract:///debug
supolicy --live "allow adbd magisk unix_stream_socket connectto"
或者使用路径模式
./lldb-server p --server --listen unix://debug
chmod 666 debug
chcon u:object_r:magisk_file:s0 debug
PC 端
cd ndk\toolchains\llvm\prebuilt\windows-x86_64\python3
..\bin\lldb
(lldb) platform select remote-android
(lldb) platform connect unix-abstract-connect:///debug
如果使用路径模式
(lldb) platform connect unix-connect:///data/local/tmp/debug
最近几个月 gradle 本体下载是不是变慢了?因为从2023年9月26日起,下载链接301到了GitHub Release。
https://github.com/gradle/gradle-distributions/releases
(怎么你也没钱了
https://github.com/gradle/gradle-distributions/releases
(怎么你也没钱了
GitHub
Releases · gradle/gradle-distributions
Repository for Gradle Build Tool distributions downloads - gradle/gradle-distributions
https://issuetracker.google.com/37097003
Option to override / discard consumer proguard configs from libraries
Option to override / discard consumer proguard configs from libraries
https://developer.android.com/about/versions/15/download
DP1 值得一提的变化有
1 广告沙箱API默认启用,需要考虑SDK运行时的uid问题,与隔离服务的情况类似。
2 art符号压缩实装,影响解析libart.so符号调用内部api的程序,例如lsposed和加固。
https://r.android.com/2673136
3 fs-verity 文件完整性功能公开给全部app使用,可以保证文件不被修改并且快速返回其SHA-256散列。
https://r.android.com/2681476
AppSourceTrustedCertificate同时弃用,它只能保护apk文件。
https://r.android.com/2650402
DP1 值得一提的变化有
1 广告沙箱API默认启用,需要考虑SDK运行时的uid问题,与隔离服务的情况类似。
2 art符号压缩实装,影响解析libart.so符号调用内部api的程序,例如lsposed和加固。
https://r.android.com/2673136
3 fs-verity 文件完整性功能公开给全部app使用,可以保证文件不被修改并且快速返回其SHA-256散列。
https://r.android.com/2681476
AppSourceTrustedCertificate同时弃用,它只能保护apk文件。
https://r.android.com/2650402
https://github.com/Chainfire/injectvm-binderjack/blob/master/README.md
SUI 和 LSPosed 的实现原理
// 现在看来,用cmd su替换su也不是多麻烦吧
SUI 和 LSPosed 的实现原理
// 现在看来,用cmd su替换su也不是多麻烦吧
GitHub
injectvm-binderjack/README.md at master · Chainfire/injectvm-binderjack
Android VM injection and BinderJacking sample code, and some ramblings about root - Chainfire/injectvm-binderjack
https://android-review.googlesource.com/q/topic:%22unlocked-only-storage%22
正在开发的新功能,可能会在Android 15上线
在现有的 /data/user 凭据加密存储和 /data/user_de 设备加密存储外,新增 /data/storage_area 锁屏加密存储。
该存储空间内的文件,只能在解锁屏幕后打开。屏幕锁定期间无法打开文件,应用进程只能使用现有文件描述符。
正在开发的新功能,可能会在Android 15上线
在现有的 /data/user 凭据加密存储和 /data/user_de 设备加密存储外,新增 /data/storage_area 锁屏加密存储。
该存储空间内的文件,只能在解锁屏幕后打开。屏幕锁定期间无法打开文件,应用进程只能使用现有文件描述符。
chrome 122 可以关闭 JIT 了
相关阅读 https://microsoftedge.github.io/edgevr/posts/Super-Duper-Secure-Mode/
相关阅读 https://microsoftedge.github.io/edgevr/posts/Super-Duper-Secure-Mode/
系统调用清单
https://www.chromium.org/chromium-os/developer-library/reference/linux-constants/syscalls/
错误号清单
https://www.chromium.org/chromium-os/developer-library/reference/linux-constants/errnos/
官方通用系统调用清单
https://github.com/torvalds/linux/blob/master/include/uapi/asm-generic/unistd.h
Android系统调用清单
https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/SYSCALLS.TXT
Android libc符号清单
https://cs.android.com/android/platform/superproject/+/main:bionic/libc/libc.map.txt
https://www.chromium.org/chromium-os/developer-library/reference/linux-constants/syscalls/
错误号清单
https://www.chromium.org/chromium-os/developer-library/reference/linux-constants/errnos/
官方通用系统调用清单
https://github.com/torvalds/linux/blob/master/include/uapi/asm-generic/unistd.h
Android系统调用清单
https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/SYSCALLS.TXT
Android libc符号清单
https://cs.android.com/android/platform/superproject/+/main:bionic/libc/libc.map.txt
Android官方支持多屏协同,可以让app在远程客户端上显示,示例项目:
https://cs.android.com/android/platform/superproject/+/main:development/samples/VirtualDeviceManager/
https://cs.android.com/android/platform/superproject/+/main:development/samples/VirtualDeviceManager/
南宫雪珊
Android官方支持多屏协同,可以让app在远程客户端上显示,示例项目: https://cs.android.com/android/platform/superproject/+/main:development/samples/VirtualDeviceManager/
与远程设备配对使用 CompanionDeviceManager 建立安全传输通道。在user构建的系统上,使用密钥证明验证远程Android客户端。
这是密钥证明的官方验证实现:
https://cs.android.com/android/platform/superproject/+/main:frameworks/base/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java
这是密钥证明的官方验证实现:
https://cs.android.com/android/platform/superproject/+/main:frameworks/base/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java
南宫雪珊
Android官方支持多屏协同,可以让app在远程客户端上显示,示例项目: https://cs.android.com/android/platform/superproject/+/main:development/samples/VirtualDeviceManager/
目前还是半成品,只能在userdebug构建的Android14系统上使用。由于文档建议客户端是大屏设备,并且不要求运行Android系统,最终目标应该是在PC上显示app,有和WSA相同的原生操作体验。