https://aka.ms/customprimarypassword
使用自定义主密码保持已保存密码的私密性
edge的这个功能才是真的实用,在本地存储加密后的密码,避免被其它软件直接读取,例如 https://www.nirsoft.net/utils/web_browser_password.html
一直苦于mount(2)没有xxxxat系列让它能通过fd操作,必须使用当前挂载命名空间内的路径实在是非常不便。结果,只是手册补丁还没合并。syscall早有了:
https://people.kernel.org/brauner/mounting-into-mount-namespaces
世界瞬间美好起来,只需5.2以上版本即可使用
反面教材 https://github.com/GrapheneOS/platform_bionic/commit/d60f2060975f16a3ecd785a2af1b30151e847459
Android T的GKI已经支持GRND_INSECURE,应该使用它来避免init被阻塞而永远无法完成初始化。
https://r8.googlesource.com/r8/+/refs/heads/main/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
-keep 指定要保留的类和类成员
-keepclassmembers 指定要保留的类成员,前提是如果它们的类也被保留
-keepclasseswithmembers 指定要保留的类和类成员,前提是所述类成员全部存在
修饰符
allowshrinking 允许删除
allowoptimization 允许优化
allowobfuscation 允许重命名
allowaccessmodification 允许访问控制改为public
allowrepackage 允许移动包,allowsObfuscation会连带设置此项(旧版R8不支持)
allowannotationremoval 允许删除注解 (需要 com.android.tools.r8.allowTestProguardOptions=true)
includedescriptorclasses 也包括类型描述中的类
includecode 忽略
实现DocumentsProvider#isChildDocument(String, String)是支持Intent#ACTION_OPEN_DOCUMENT_TREE的必要条件,DocumentsContract.Root#FLAG_SUPPORTS_IS_CHILD 用于声明该方法是否实现。可惜这个flag只有少数DocumentsProvider拥有,Google自家的云端硬盘也没有。
https://developer.android.com/guide/topics/providers/create-document-provider
这个flag不普及的原因可能因为示例代码没有它,示例只包括如何支持 ACTION_OPEN_DOCUMENT,虽然只需要再多一个方法。
SEAndroid中的多级安全
https://cs.android.com/android/platform/superproject/+/master:external/selinux/libselinux/src/android/android_seapp.c;l=674;drc=48c968d18487b72ba8bfc14c43b796516e92145b
https://cs.android.com/android/platform/superproject/+/master:system/sepolicy/private/seapp_contexts
https://selinuxproject.org/page/NB_MLS
https://support.google.com/accounts/answer/11350823
Google 密码管理工具支持端到端加密
看起来是用 Google 账号登录密码作为口令加密密钥,理论上 Google 服务器只存储加密后的密钥。
http://www.cac.gov.cn/2022-12/11/c_1672221949354811.htm
《互联网信息服务深度合成管理规定》
第十七条 深度合成服务提供者提供以下深度合成服务,可能导致公众混淆或者误认的,应当在生成或者编辑的信息内容的合理位置、区域进行显著标识,向公众提示深度合成情况:
(一)智能对话、智能写作等模拟自然人进行文本的生成或者编辑服务;
(二)合成人声、仿声等语音生成或者显著改变个人身份特征的编辑服务;
(三)人脸生成、人脸替换、人脸操控、姿态操控等人物图像、视频生成或者显著改变个人身份特征的编辑服务;
第二十三条 本规定中下列用语的含义:
深度合成技术,是指利用深度学习、虚拟现实等生成合成类算法制作文本、图像、音频、视频、虚拟场景等网络信息的技术,包括但不限于:
(一)篇章生成、文本风格转换、问答对话等生成或者编辑文本内容的技术;
(二)文本转语音、语音转换、语音属性编辑等生成或者编辑语音内容的技术;
(三)音乐生成、场景声编辑等生成或者编辑非语音内容的技术;
(四)人脸生成、人脸替换、人物属性编辑、人脸操控、姿态操控等生成或者编辑图像、视频内容中生物特征的技术;
(五)图像生成、图像增强、图像修复等生成或者编辑图像、视频内容中非生物特征的技术;
看了半天没看懂,只觉得似乎很离谱。从语法分析来看,深度学习和虚拟现实是生成合成类算法的两个举例,即任何生成合成类算法都是深度合成技术。再看具体列表,美颜应该算吧?TTS也算?还有PS?
https://mogua.co/view_file/?file=com/miui/guardprovider/engine/mi/antidefraud/AntiDefraudAppManager.java&md5=baf42d5a0e84f7904b82a0320298b833&type=apk&appname=MIUI%20security%20components
MIUI 安全组件 这个系统应用的某个类的名字好像不太对劲呀。
这个类的行为是收集全部已安装应用,上传到服务器并获取其返回的危险应用列表
最近在调查改进shizuku的激活方式,目前Android生态中存在以下问题:
1. Android12 起 adb 没有权限访问应用私有数据目录(/data/user_de/x/com.android.example),被SELinux拦截,无法绕过
2. 部分Android11设备没有合入这个提交,导致adb无法访问 /sdcard/Android/data/com.android.example
3. 无线调试的「在当前网络上始终允许」没有真的记住,重启后丢失。直到Android13才修复
4. 华为系统把无线调试砍了,开发者选项中的配置项和授权弹窗界面被删除
5. 老生常谈的USB驱动问题,只有chromium系浏览器的webadb可以不用安装驱动
考虑以上现状,shizuku的激活方式需要修改,否则部分设备无法激活。作为参考,黑阈在网页调试和无线调试中直接传入较为复杂的启动命令,解决了激活问题。
✉️ <noreply-buganizer-system@google.com>
Issue Tracker could not process email with subject (Re: Issue 248179755: Clangd integration broken in flamingo canary 1)
Unfortunately, your email to create/update an issue was not processed.
Reason:
User did not have permission to update in
component '192703'
For information on how to use Issue Tracker's email interface, please visit:
Creating issues -
https://github.com/GrapheneOS/platform_frameworks_base/commit/a200e9b53f239a89368366b131acdd9dfee9d8c8
什么Windows试用版
https://gist.github.com/vvb2060/7375953b16fd41abdcf2a76363dfaaf4
最近 Maven Central 的网页经常出问题,整理了它的API,直接curl调用算了……
Because ADB 31.0.2 disables mDNS discovery, you must enable mDNS discovery and then restart the ADB server.
export ADB_MDNS_OPENSCREEN=1
adb kill-server
adb start-server
adb mdns services
adb connect driver_vm._adb._tcp
iPhone+Apple https://www.wsj.com/articles/apple-iphone-security-theft-passcode-data-privacya-basic-iphone-feature-helps-criminals-steal-your-digital-life-cbf14b1a
Android+Google https://twitter.com/MishaalRahman/status/1629315374679306240
移动设备的锁屏是数字资产的最后一道安全防线
锁屏被偷瞄不在任何安全模型的考虑范畴内,一旦泄露即可修改密码并且阻止失主的全部找回尝试。
修复被阻塞的随机
https://lwn.net/Articles/800509/
https://lwn.net/Articles/884875/
https://github.com/torvalds/linux/commit/50ee7529ec4500c88f8664560770a7a1b65db72b
https://github.com/torvalds/linux/commit/6f98a4bfee72c22f50aedb39fb761567969865fe
https://github.com/torvalds/linux/commit/48bff1053c172e6c7f340e506027d118147c8b7f
在初始化后,/dev/random和/dev/urandom完全相同,永远不会阻塞或耗尽,99%的程序不应该区分两者。唯一的例外是init,此时可能尚未初始化。
getrandom(0)会阻塞直到初始化完毕,等于/dev/random,GRND_RANDOM已经失去意义。
getrandom(GRND_INSECURE)会在初始化完成前返回尽力而为的随机内容,等于/dev/urandom,不可与GRND_RANDOM同时使用,永远不会阻塞,忽略GRND_NONBLOCK。
x86平台,会在阻塞1秒后初始化完毕,因此/dev/urandom始终与/dev/random相同。
Clash Android的附加HTTP代理功能会让okhttp5忽略应用内DNS配置,okhttp4则是DoH解析失败,如果没有回退到系统DNS,请求无法完成。
作为开发者,可以指定Proxy.NO_PROXY或者主动关闭DoH。
调用栈里有更多奇怪的名字😅
at com.miui.guardprovider.engine.mi.antidefraud.AntiDefraudAppManager.getSign(Unknown Source:0)
at com.miui.guardprovider.engine.mi.antidefraud.MiDetectAppsManager.virusInMiEngineRiskList(Unknown Source:30)
at com.miui.guardprovider.engine.mi.antidefraud.AntiDefraudAppManager.getDetectUnsafeAppStatus(Unknown Source:6)
at com.miui.guardprovider.manager.SecurityService$a.nationalAntiFraudSingleAppScan(Unknown Source:17)
at com.miui.guardprovider.aidl.IAntiVirusServer$Stub.onTransact(Unknown Source:38)
at android.os.Binder.execTransactInternal(Binder.java:1190)
at android.os.Binder.execTransact(Binder.java:1149)
HTTP 请求头 Sec-CH-UA: "Not=A?Brand";v="24" 解释
Sec:security,安全,禁止网页脚本修改该请求头
CH:client hints,客户端提示,允许服务器主动请求其所需的特定客户端信息
UA:user agent,用户代理,代表用户浏览网页的软件
GREASE: Generate Random Extensions And Sustain Extensibility,生成随机扩展并维持可扩展性。
Not=A?Brand:一个插入集合中的随机字符串,用于防止解析程序僵化。
标准文档:https://wicg.github.io/ua-client-hints/#grease
Android Studio 的clangd集成从canary1开始坏。开issue先是说已经修了;然后说canary2没修,3修了;接着说6修了;现在说6确实没修,8修了。
结果 canary8 还没发布呢,issue 直接没了