Whistle 是基于 Node 实现的跨平台抓包调试工具

Whistle 是基于 Node 实现的跨平台抓包调试工具,其主要特点:

  1. 完全跨平台:支持 Mac、Windows 等桌面系统,且支持服务端等命令行系统
  2. 功能强大(理论上可以对请求做任意修改)
    • 支持作为 HTTP、HTTPS、SOCKS 代理及反向代理
    • 支持抓包及修改 HTTP、HTTPS、HTTP2、WebSocket、TCP 请求
    • 支持重放及构造 HTTP、HTTPS、HTTP2、WebSocket、TCP 请求
    • 支持设置上游代理、PAC 脚本、Hosts、延迟(限速)请求响应等
    • 支持查看远程页面的 console 日志及 DOM 节点
    • 支持用 Node 开发插件扩展功能,也可以作为独立 npm 包引用
  3. 操作简单
    • 直接通过浏览器查看抓包、修改请求
    • 所有修改操作都可以通过配置方式实现(类似系统 Hosts),并支持分组管理
    • 项目可以自带代理规则配置并一键设置到本地 Whistle 代理,也可以通过定制插件简化操作

继续阅读Whistle 是基于 Node 实现的跨平台抓包调试工具

Ubuntu 22.04 搭建 Timemachine

  • 创建一个目录,作为 TimeMachine 保存数据的目录。

  • 安装 netatalk 服务和 avahi-daemon 服务。

  • 编辑 netatalk 的配置文件:

  • 在该文件原来的基础上,或新增以下配置:

  • 重启服务。

现在,你在 TimeMachine 上应该可以看到这个备份服务了,选择该备份服务就可以开始你的第一次备份了。

参考链接


Flutter CustomPainter自动绘制属性repaint原理

这篇文章主要讨论的是Fluter中CustomPainter中使用repaint属性实现自动paint的原理。

首先使用CustomPaint创建一个StatefulWidget,demo中根据点击位置,对蓝色的圆进行位置变换。

代码如下

继续阅读Flutter CustomPainter自动绘制属性repaint原理

flutter升级到3.3.9后报错“Library not loaded: @rpath/libswiftCore.dylib”

flutter 升级到 3.3.9 后,代码编译报错,如下:

解决方法就是在工程的 "Build Settings->Linking->Runpath Search Paths" 加上 "/usr/lib/swift" 。

如下图:

继续阅读flutter升级到3.3.9后报错“Library not loaded: @rpath/libswiftCore.dylib”

VirtualBox 7.0.4安装macOS Monterey 12.6.1

硬件要求

Intel E3-1230 v3 可以成功安装, AMD Ryzen 5900 CPU 在 Linux 系统上,需要配置 CPU 模仿 Intel CPU 的特性。并且 CPU 部分,不要启用 嵌套VT-x/AMD-V

生成系统安装镜像

macOS (实验使用的系统是 macOS Big Sur (11.7.1))系统上,执行如下命令,生成系统安装镜像

继续阅读VirtualBox 7.0.4安装macOS Monterey 12.6.1

ubuntu 22.04升级到cpp-12后flutter编译报错"找不到 -lstdc++"

在今天晚上 ubuntu 22.04 执行如下升级命令之后

再次执行 flutter 的构建命令,报错。

操作过程如下:

解决方法是手工安装依赖:

之后再执行构建命令。

参考链接


Build failed on linux #115909

Android R(11)文件选择兼容

对于 Android R(11) 使用 ContentResolver 检索图片,音乐,视频文件,参考 Android R(11) ContentResolver报错java.lang.IllegalArgumentException: Invalid token limit 里面的代码即可实现。但是如果想上传 PDFTXT等文件的时候,则会发现系统无任何数据返回。

下面探讨一下如何解决这个问题:

一.储存

首先,我们需要对Android的储存有所了解
Android储存器可分为内部储存外部储存,这里的内部储存和外部储存不是说有两个物理储存器而是系统在硬盘上划分了两个专用目录用作内部储存和外部储存。简单来说,我们通过系统文件管理器看到的目录都属于外部储存,外部储存又可分为三类目录,私有目录公共目录其它目录,而内部储存对于用户是隐藏的,如数据库、SharedPreferences等文件都放在内部储存中。

内部储存

内部储存对应的目录为/data/user/0/{应用包名},该目录下应用有权限进行文件操作,目录对外不可见,应用删除对应的目录也会被删除。

外部储存
1.私有目录

私有目录获取和内部储存获取方式类似,都有file和cache目录,且该目录下应用有权限进行文件操作,目录对外可见,应用删除对应的目录也会被删除。
从Android11开始,私有目录不能被外部访问,即使获取了“所有文件管理”权限也不行(当然也是有其它方式可以实现Data目录的访问,不过目前看来并不完美)

2.公共目录

Downloads、Documents、Pictures 、DCIM、Movies、Music、Ringtones等目录都是公共目录,Android11前可以通过文件路径直接访问,Android11后需要通过MediaStore来进行访问。

3.其它目录

外部储存中除了私有目录和公共目录外都是其它目录,Android11后不能直接对其它目录进行访问。

二.分区存储

Android10中已经加入了分区储存机制,不过是非强制的,适配Android10只需在AndroidManifest.xml中添加 android:requestLegacyExternalStorage="true"即可。而在Android11已经强制应用使用分区储存。

三.兼容方式

1.MANAGE_EXTERNAL_STORAGE(不推荐)

开启授权页面

获取“所有文件管理”的权限可以读写除私有目录外的所有文件,但是这种权限一般为文件管理类的软件才需要申请。一般APP申请此类权限若上架Google,华为等应用市场大概率被拒。

2.存储访问框架 (SAF)(推荐)

应用如果有做文件选择上传类的功能可以使用此方式,通过启动一个系统的文件浏览页面,选择需要的文件后返回一个uri,之后将uri转成流上传或者将通过uri复制文件到私有目录再操作复制后的文件进行上传,这里切记不能直接将uri转成File去进行操作。

参考链接


如何将其他设备通过 Windows 10 自带的“连接”功能无线投屏到计算机中

请确保计算机端已打开连接窗口,再使用无线投屏功能。

在计算机端打开“连接”窗口
  1. 点击任务栏中的网络图标,开启 WLAN 功能。

  2. 点击 Windows 图标。
    • 若有连接选项,请继续步骤 3 的操作。

    • 若无连接选项,请先进行如下操作后再进行步骤 3 的操作:
      1. 连接网络状态下,点击 Windows 图标 > 设置图标,选择系统。

      2. 点击投影到此电脑,选择可选功能。

      3. 点击添加功能。

      4. 在添加可选功能搜索框中输入无线,在搜索结果中勾选无线显示器,点击安装。

      5. 安装完成后,重启计算机(若您的计算机有更新,请更新后重启),您就可以在 Windows 应用列表中看到连接选项。

  3. 在连接窗口,您可以看到您的计算机设备名称,并显示您的计算机已准备好无线连接方式。

使用无线投屏功能

在其他设备端(如手机、平板、其他计算机)中打开无线投屏模式,搜索投影设备为上述计算机名称,进行连接即可。

 

  • 不同的设备打开无线投屏模式的操作不一样,具体请咨询设备供应商。
  • 通过华为电脑管家将手机与计算机连接,可能会影响到手机的无线投屏功能,请在我的设备>我的手机>断开连接中断开连接,并在计算机端关闭连接窗口,再重新尝试。

以华为 P30 为例:

  1. 下拉打开通知面板,开启 WLAN 功能,选择无线投屏。

  2. 手机端将自动搜索附近的可投屏设备,在可投屏的设备中选择计算机设备名称。

  3. 计算机端的连接窗口中将显示手机的投屏界面。

  4. 若要断开无线投屏,点击连接窗口右上角的关闭按钮,或关闭手机端的无线投屏功能即可。

参考链接


如何将其他设备通过 Windows 10 自带的“连接”功能无线投屏到计算机中

Windows 11右键设计反人类?教你恢复完整右键菜单

微软已经在10月5日发布了Windows 11正式版,很多朋友也已经升级了。不过对于Windows 11的一些新设计,并不是所有人都能适应的,例如新的右键快捷菜单,就不少朋友表示接受不了。

Windows 11的新右键菜单相比之前的旧款式,颜值上的确大有提升,不仅使用了Fluent Design设计语言,而且优化了文字排版,行间距更宽,便于阅读和触控。然而,Win11的右键菜单隐藏了很多选项,如果想要找到一些常用的功能,需要点击“显示更多选项”才能展开,这操作起来颇为麻烦。怎么办?今天就来给大家分享一些恢复Windows 11完整右键菜单的方法!

使用注册表修改

首先,通过修改注册表,我们就可以将Win11的右键菜单改为老样式。下面是具体的方法。

  ·运行“regedit”,开启注册表编辑器,定位到“HKEY_CURRENT_USER\SOFTWARE\CLASSES\CLSID”;

  ·接着,右键点击“CLSID”键值,新建一个名为{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}的项;

  ·右键点击新创建的项,新建一个名为InprocServer32的项,按下回车键保存;

  ·最后选择新创建的项,然后双击右侧窗格中的默认条目,什么内容都不需要输入,按下回车键。

保存注册表后,重启explorer.exe,即可看到右键菜单恢复成旧样式了。

如果想要恢复成为Windows 11的设计,那么删掉InprocServer32的项就可以了。

参考链接


Win11右键设计反人类?教你恢复完整右键菜单