近况报告
在农历新年前后我妈感染新冠,考虑到免疫力弱,开始每天打一瓶丙球,有点烧钱。在这期间全部都是我来操作,于是静脉注射这一操作变得非常熟练。后来在新年过后,开始了第二次造血干细胞移植。其中过程虽然有点曲折,但是最终还是顺利的,这次终于达到了完全缓解,也就是说无进展生存期可能可以达到2年。
在出院之后,每周都要去维持治疗,照旧每周打一瓶丙球,如果不在医院打也是拿回家让我打,如果需要抽血检查也让我来抽。去医院发现我已经比实习护士熟练了。
有次我问道,我这种不是自己专业内的技能有什么用,只能服务于家人。可是很快就发现是有用的。
外公年纪大了,老人痴呆很久了。几个月前开始断断续续拒食。各种检查指标也正常。于是开了肠外营养、白蛋白,我爸在医院轮班,并不总是有空,于是有时候这个任务都交给我,开了针水让我拿回家配药打。
年纪大的人手上的血管很难打,但是每次都成功。
第一次打了半周,又开始肯吃东西了。过了约一个月,又开始拒食。于是有又启肠外营养,过了一周,又开始肯吃东西,但是这次维持不到一周。
有次我们回去看外公,顺便打点白蛋白,开车到村里后下车,我走得比较快。进门时,看见地上几滴血,零星几滴导向房间。虽然有点慌,但是还是冷静地开始判断怎么回事。发现了外公坐在床边皱着眉头,像个委屈的孩子似的,头上流着血。
后来送到医院检查 CT,除了脑萎缩,没什么事,皮外伤,缝了好多针。查看监控,应该是癫癞在椅子上后仰倒下的。
这之后家人决定顺其自然了,不打针了。人不肯吃东西,也知道意味着什么。
后来外公就回祖屋住了,几周后,头上的伤口也好了。不过一直睡觉。有次村里的表哥晚上突然叫我们回去,以为外公要走了,但是只是虚惊一场。我开车载我舅舅赶回去,我算了一下心率和呼吸率,都在正常范围。
外公越来越弱了,上周五(前天)我们去看他。今天中午走了,虽然有点突然,但是也是预料之中、循序渐进的突然。也超过90岁了,比人均预期寿命长。
我发现我面对死亡越来越从容了,这就像在脱敏一样。在医院呆久了,每次遇到这些事情只会进行不太专业的病情分析来尝试使自己分心。
虽然无力,但是努力过。
在农历新年前后我妈感染新冠,考虑到免疫力弱,开始每天打一瓶丙球,有点烧钱。在这期间全部都是我来操作,于是静脉注射这一操作变得非常熟练。后来在新年过后,开始了第二次造血干细胞移植。其中过程虽然有点曲折,但是最终还是顺利的,这次终于达到了完全缓解,也就是说无进展生存期可能可以达到2年。
在出院之后,每周都要去维持治疗,照旧每周打一瓶丙球,如果不在医院打也是拿回家让我打,如果需要抽血检查也让我来抽。去医院发现我已经比实习护士熟练了。
有次我问道,我这种不是自己专业内的技能有什么用,只能服务于家人。可是很快就发现是有用的。
外公年纪大了,老人痴呆很久了。几个月前开始断断续续拒食。各种检查指标也正常。于是开了肠外营养、白蛋白,我爸在医院轮班,并不总是有空,于是有时候这个任务都交给我,开了针水让我拿回家配药打。
年纪大的人手上的血管很难打,但是每次都成功。
第一次打了半周,又开始肯吃东西了。过了约一个月,又开始拒食。于是有又启肠外营养,过了一周,又开始肯吃东西,但是这次维持不到一周。
有次我们回去看外公,顺便打点白蛋白,开车到村里后下车,我走得比较快。进门时,看见地上几滴血,零星几滴导向房间。虽然有点慌,但是还是冷静地开始判断怎么回事。发现了外公坐在床边皱着眉头,像个委屈的孩子似的,头上流着血。
后来送到医院检查 CT,除了脑萎缩,没什么事,皮外伤,缝了好多针。查看监控,应该是癫癞在椅子上后仰倒下的。
这之后家人决定顺其自然了,不打针了。人不肯吃东西,也知道意味着什么。
后来外公就回祖屋住了,几周后,头上的伤口也好了。不过一直睡觉。有次村里的表哥晚上突然叫我们回去,以为外公要走了,但是只是虚惊一场。我开车载我舅舅赶回去,我算了一下心率和呼吸率,都在正常范围。
外公越来越弱了,上周五(前天)我们去看他。今天中午走了,虽然有点突然,但是也是预料之中、循序渐进的突然。也超过90岁了,比人均预期寿命长。
我发现我面对死亡越来越从容了,这就像在脱敏一样。在医院呆久了,每次遇到这些事情只会进行不太专业的病情分析来尝试使自己分心。
虽然无力,但是努力过。
❤10🙏6
RKP 远程密钥下发时服务器怎么确认请求来自有效设备?
每台设备在工厂生成一组唯一的密钥,私钥存设备上,公钥上传到 Google 的服务器。
发起 RKP 请求时,设备使用私钥签名该请求,谷歌 RKP 服务器使用相应的公钥验证请求。
验证通过后对公钥签名并返回证书链。
每台设备在工厂生成一组唯一的密钥,私钥存设备上,公钥上传到 Google 的服务器。
发起 RKP 请求时,设备使用私钥签名该请求,谷歌 RKP 服务器使用相应的公钥验证请求。
验证通过后对公钥签名并返回证书链。
开机时想自动启动非 root 模式的 Shizuku 又不想开无线 ADB 可以用这个脚本,同时启动了 ADB 模式的黑阈和 Scene
放到
放到
/data/adb/service.d 并授予可执行权限即可resetprop -w sys.boot_completed 0
SHIZUKU_PATH=$(pm path moe.shizuku.privileged.api | sed "s|^package:||; s|/base\.apk$|/lib/$(getprop ro.product.cpu.abi | sed 's/arm64-v8a/arm64/;s/armeabi-v7a/arm/')/libshizuku.so|")
su -g 2000 -G 1004 -G 1007 -G 1011 -G 1015 -G 1028 -G 1078 -G 1079 -G 3001 -G 3002 -G 3003 -G 3006 -G 3009 -G 3011 -G 3012 -Z u:r:shell:s0 2000 -c "$SHIZUKU_PATH"
su -g 2000 -G 1004 -G 1007 -G 1011 -G 1015 -G 1028 -G 1078 -G 1079 -G 3001 -G 3002 -G 3003 -G 3006 -G 3009 -G 3011 -G 3012 -Z u:r:shell:s0 2000 -c 'output=$(pm path me.piebridge.brevent); export CLASSPATH=${output#*:}; app_process /system/bin me.piebridge.brevent.server.BreventServer bootstrap; /system/bin/sh /data/local/tmp/brevent.sh'
while [ ! -d "/storage/emulated/0/Android" ]; do
sleep 3
done
su -g 2000 -G 1004 -G 1007 -G 1011 -G 1015 -G 1028 -G 1078 -G 1079 -G 3001 -G 3002 -G 3003 -G 3006 -G 3009 -G 3011 -G 3012 -Z u:r:shell:s0 2000 -c '/system/bin/sh /storage/emulated/0/Android/data/com.omarea.vtools/up.sh'
add-update.sh
1.4 KB
用于 Windows 的 LineageOS 更新包推送脚本
即 https://github.com/LineageOS/android_packages_apps_Updater/blob/lineage-23.0/push-update.sh 的 Windows 版
其他系统的话大概改改 shell 脚本里的 updates_dir 也能用
这种方式推送的更新包必须是能通过 Recovery 签名校验的,如果没有第三方 Recovery 或未设置忽略签名校验则只能安装未更改的系统包
即 https://github.com/LineageOS/android_packages_apps_Updater/blob/lineage-23.0/push-update.sh 的 Windows 版
其他系统的话大概改改 shell 脚本里的 updates_dir 也能用
这种方式推送的更新包必须是能通过 Recovery 签名校验的,如果没有第三方 Recovery 或未设置忽略签名校验则只能安装未更改的系统包
👍1
https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost-the-api-war/
在翻 Windows Shim Database 时看到的一篇文章
商业软件靠兼容性赢得市场
Windows 升级一直要保持向后兼容导致 API 不能变
在翻 Windows Shim Database 时看到的一篇文章
商业软件靠兼容性赢得市场
Windows 升级一直要保持向后兼容导致 API 不能变
Joel on Software
How Microsoft Lost the API War
Here’s a theory you hear a lot these days: “Microsoft is finished. As soon as Linux makes some inroads on the desktop and web applications replace desktop applications, the mighty empir…
❤1
微软的本地化指南
https://learn.microsoft.com/en-us/globalization/reference/microsoft-style-guides
以及术语表
https://msit.powerbi.com/view?r=eyJrIjoiODJmYjU4Y2YtM2M0ZC00YzYxLWE1YTktNzFjYmYxNTAxNjQ0IiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9
Android 翻译查询
https://translations.zhanghai.me/
做本地化的可以参考
https://learn.microsoft.com/en-us/globalization/reference/microsoft-style-guides
以及术语表
https://msit.powerbi.com/view?r=eyJrIjoiODJmYjU4Y2YtM2M0ZC00YzYxLWE1YTktNzFjYmYxNTAxNjQ0IiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9
Android 翻译查询
https://translations.zhanghai.me/
做本地化的可以参考
Docs
Microsoft Localization Style Guides - Globalization
Download Microsoft Style Guides for guidance on Microsoft's language and style conventions.
Copy-ACL.ps1
1.7 KB
https://devblogs.microsoft.com/powershell/copy-acl/
将其他盘的
将其他盘的
Program Files 文件夹权限设置到和 C 盘上的一致.\Copy-ACL.ps1 -FromPath "C:\Program Files" -Destination "D:\Program Files" -Passthru
❤3
与 Windows Update 斗智斗勇一天,更新到87%后回滚,发现
然后一看里面是 Microsoft XPS Document Writer v4
这明明是微软自己的组件,你怎么自己卡了?
推荐按照这个文档排查更新失败的问题
https://learn.microsoft.com/zh-cn/windows/deployment/upgrade/setupdiag
<DriverPackage Inf="oem279.inf" BlockMigration="True" HasSignedBinaries="False"/>
然后一看里面是 Microsoft XPS Document Writer v4
这明明是微软自己的组件,你怎么自己卡了?
推荐按照这个文档排查更新失败的问题
https://learn.microsoft.com/zh-cn/windows/deployment/upgrade/setupdiag
Docs
SetupDiag
SetupDiag 的工作原理是检查 Windows 安装程序日志文件。 本文介绍如何使用 SetupDiag 工具诊断 Windows 安装程序错误。
Howard's 碎碎念
与 Windows Update 斗智斗勇一天,更新到87%后回滚,发现 <DriverPackage Inf="oem279.inf" BlockMigration="True" HasSignedBinaries="False"/> 然后一看里面是 Microsoft XPS Document Writer v4 这明明是微软自己的组件,你怎么自己卡了? 推荐按照这个文档排查更新失败的问题 https://learn.microsoft.com/zh-cn/windows/deployment/upgrade/setupdiag
强制移除一个驱动
devcon 可以用这个工具下载
https://github.com/Drawbackz/DevCon-Installer
用旧版本工具也没问题
比如 Windows 11 25H2 用 Windows 10 1703 的 devcon 都没问题
devcon -f dp_delete oem279.inf
devcon 可以用这个工具下载
https://github.com/Drawbackz/DevCon-Installer
用旧版本工具也没问题
比如 Windows 11 25H2 用 Windows 10 1703 的 devcon 都没问题
GitHub
GitHub - Drawbackz/DevCon-Installer: Quickly download and install DevCon without downloading the entire Windows Driver Kit
Quickly download and install DevCon without downloading the entire Windows Driver Kit - Drawbackz/DevCon-Installer
Howard's 碎碎念
与 Windows Update 斗智斗勇一天,更新到87%后回滚,发现 <DriverPackage Inf="oem279.inf" BlockMigration="True" HasSignedBinaries="False"/> 然后一看里面是 Microsoft XPS Document Writer v4 这明明是微软自己的组件,你怎么自己卡了? 推荐按照这个文档排查更新失败的问题 https://learn.microsoft.com/zh-cn/windows/deployment/upgrade/setupdiag
然而这并不是更新失败的根本原因,reddit 上有人抱怨了 https://www.reddit.com/r/windowsinsiders/comments/1p3ztaz/release_preview_installation_error_0x8007042b
触发这种一直更新失败一直推送更新的操作是:在系统在 Release Preview 通道时,选择下一版本退出预览体验计划
Windows Update 会在 Windows 11 25H2 一直推送同版本的 25H2 然后更新失败
触发这种一直更新失败一直推送更新的操作是:在系统在 Release Preview 通道时,选择下一版本退出预览体验计划
Windows Update 会在 Windows 11 25H2 一直推送同版本的 25H2 然后更新失败
Reddit
From the windowsinsiders community on Reddit
Explore this post and more from the windowsinsiders community
Android 隐藏 API 的调用的一个方法是自己写一遍 stub,通常我们方法实现中会写
而公开 API 在 android.jar 中会写
这个是怎么来的呢?
翻阅了源码发现是这里来的
https://cs.android.com/android/platform/superproject/+/android-latest-release:tools/metalava/metalava/src/main/java/com/android/tools/metalava/stub/JavaStubWriter.kt
相关工具的说明:https://cs.android.com/android/_/android/platform/tools/metalava/+/main:README.md
throw new UnsupportedOperationException("STUB");而公开 API 在 android.jar 中会写
throw new RuntimeException("Stub!");这个是怎么来的呢?
翻阅了源码发现是这里来的
https://cs.android.com/android/platform/superproject/+/android-latest-release:tools/metalava/metalava/src/main/java/com/android/tools/metalava/stub/JavaStubWriter.kt
private fun writeThrowStub() {
writer.write("throw new RuntimeException(\"Stub!\");")
}相关工具的说明:https://cs.android.com/android/_/android/platform/tools/metalava/+/main:README.md
# Metalava
Metalava is a metadata generator intended for JVM type projects. The main
users of this tool are Android Platform and AndroidX libraries, however this
tool also works on non-Android libraries.
Metalava has many features related to API management. Some examples of the most
commonly used ones are:
* Allows extracting the API (into signature text files, into stub API files
which in turn get compiled into android.jar, the Android SDK library) and
more importantly to hide code intended to be implementation only, driven by
javadoc comments like @hide, @doconly, @removed, etc, as well as various
annotations.
* Extracting source level annotations into external annotations file (such as
the typedef annotations, which cannot be stored in the SDK as .class level
annotations) to ship alongside the Android SDK and used by Android Lint.