零成本让你拥有Mac触摸板鼠标

序章

相信用过Mac触摸板鼠标的都被它的丝滑流畅给惊艳过,但是作为一个IT穷屌丝怎么买得起那样高大上的玩意,不过前几天玩VNC的时候倒是有一个很意外发现用起来简直跟Mac鼠标有得一拼.

你需要的东西

  • 手机一台Android/IOS都可以

  • RealVNCAndroid/IOS

我该怎么用

原理很简单就是在电脑上开启vnc server不同操作系统开启方式不一样像Mac和Ubuntu这样本身就是支持VNC的直接在系统设置中打开屏幕共享即可而Windows用户稍微麻烦一些需要额外安装一个tightvnc软件安装过程比较简单在此不讨论自行研究,这样我们直接从手机端通过VNC连过去一个触摸板鼠标就做好了,主要是RealVNC这个软件操作起来比较流畅下面我介绍一下这个软件基本的操作用法:

  1. 鼠标左击 直接点击一下屏幕
  2. 鼠标右击 双指点击一下屏幕
  3. 滚动网页 双指上下搓屏幕
  4. 鼠标选择文字 双击屏幕拖动选择
  5. 鼠标粘贴问题 三指点击屏幕

其他的骚操作可以查看RealVNC的帮助信息

结尾

至此你已经拥有一个流畅的触摸板鼠标了,当然相比于Mac的触摸板鼠标还差很远但是已经有了几分的样子,用手机当触摸板想想也是蛮炫酷的当然有个不好的地方就是手机的画面是和电脑同步的要是有个黑屏只支持操作的模式就好了.

用 Golang 在 Android 上实现代理的几个问题

转自:https://blog.dio.wtf/post/tips-for-golang-proxy-for-android/ 仅供备份

用 Golang 来实现的代理不要太多,像 V2RayBrookClash。一方面得益于 Golang 标准库对于网络编程的支持,另一方面也是由于其便利的交叉编译。如果要在 Android 上用 Golang 实现一套代理方案,还是必须要处理一些问题,或者说是所有的代理方案都要解决的平台特性。

IPC 传递文件描述符

Android 上使用 VpnService 由系统创建一个 TUN 虚拟网卡并接收所有的流量,API 会返回一个 file descriptor,通过这个 FD 可以读取/写入 IP packet。

为了稳定性和性能考虑,我们通常会将代理程序放到一个单独的进程里。但是在 Android 的阉割版 Linux 环境下,子进程是无法访问父进程的 FD。这里就需要用到 Linux 通用的进程间共享 FD 的方案,也就是给 Unix Socket 设置 SCM_RIGHTS 标识,然后用 recvmsgsendmsg 来收发。在 Android 和 Golang 中都有对应的 API。

1
2
public void LocalSocket.setFileDescriptorsForSend (FileDescriptor[] fds)
public FileDescriptor[] LocalSocket.getAncillaryFileDescriptors ()
1
2
3
4
5
6
7
8
9
10
// UnixRights encodes file descriptors into a socket control message
func syscall.UnixRights(fds ...int) []byte
func syscall.Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error)
func syscall.Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error)
// ParseSocketControlMessage parses b as an array of socket control
// messages.
func syscall.ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error)
// ParseUnixRights decodes a socket control message that contains an
// integer array of open file descriptors from another process.
func syscall.ParseUnixRights(m *SocketControlMessage) ([]int, error)
阅读更多...

如何调试Xposed模块不用重启

我想做过Xposed模块开发的一定对调试模块必须要重启手机这个机制不陌生, 拜这个机制所赐每次开发起来苦不堪言。稍微改点东西就需要重启手机少则几十秒要是碰到性能稍差一点的手机几分钟也是有可能的。那我们今天就来好好聊聊怎么才能让修改后的代码即时生效呢?首先要搞清楚这个问题还必须从为什么插件每次修改都要重启手机说起,我们可以通过Xposed开发文档了解到Xposed的工作方式是通过替换/system/bin/app_process这个二进制文件来实现的进程注入的,我们知道app_process是所有进程的启动入口所以xposed替换了这个文件修改了内部执行逻辑优先去加载我们的插件然后再去加载原始的App代码所以才得以实现各种hook,但是问题就出现在加载插件上了,默认的第一次加载插件时系统会在/data/dalvik-cache/创建一份字节码文件给需虚拟机执行,但是因为这个文件只会在第一次加载的时候创建所以当我们修改了插件后再安装这个文件是不会变的,这也就导致我们的改动不会立即生效需要重启手机让系统生成一个新的字节码文件,那肯定有小伙伴会想那我手动把这个字节码文件删了呢?很遗憾我在Android7.0上尝试了一下并未成功原因未知。

阅读更多...
  • Copyrights © 2015-2025 Kaisar
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信