浅谈android设备sysfs接口硬件调用之手电筒,马达,呼吸灯
迟来的更新喵~这篇文章我们来介绍下几个sysfs接口的调用。需要注意的是,由于安卓内核碎片化过于严重,各个厂商之间的代码差异过大,因此直接和内核交互来调用驱动并不是一个通用思路。但是对于某些特定设备的驱动调用却是个简单可行的方法,比如nothing phone的灯带。
手电筒:一般是个led类设备,小米10ultra的手电筒被注册到了/sys/class/leds/flashlight/下,当然也有部分设备叫led0或者其他,nothing的手电筒驱动猫猫还没找到,猫猫好笨喵呜~目录中有两个文件对我们有用:brightness和max_brightnessmax_brightness的内容是个固定值,定义了灯的最大亮度。brightness的内容是个无符号整形数值,定义了灯的亮度,向其写入一个不大于max_brightness的合法数值,灯会亮,数越大灯越亮,写入0关闭手电筒。什么你说怎么写?直接重定向覆盖进去就行了。
呼吸灯:和手电筒差不多,一般在/sys/class/leds/white,当然 ...
浅谈Linux容器安全:chroot,capability与namespace技术
作者只是个萌新,大佬轻喷。文章最终确定以时间顺序浅谈Linux容器安全原理。安全原理相关知识网上已经有很多了,咱通过几个具体攻击实例来讲讲它们的真实作用。演示均在猫猫自己写的moe-container中进行,使用的是手机,因为实在懒得开电脑了喵………有关容器技术的具体实现参照咱的另一篇文章:从零开始实现一个Linux容器好了,话不多说让我们开始吧喵!
chroot技术:chroot,顾名思义,改变应用程序所参考的根目录,是最早的容器隔离技术,据说最早可追溯到1979年的UNIX chroot,确实是个老东西呢喵~chroot可以对容器目录进行隔离,听起来还挺安全的………也只是听起来。chroot容器一般由root权限创建,但创建后并不会将特权进行移除,也就是说,chroot容器内部一般拥有和外部相等的特权。所以如果一个chroot容器被攻击,拿到了root权限会怎么样呢?会寄的呢喵!举两个简单的例子:你的硬盘设备在容器中拥有和宿主机一样的映射,也就是说可通过挂载宿主机目录形式轻松逃逸。chroot容器中可以随意杀死宿主机进程,或者制造一起kernel panic。让我们创建一个chro ...
为你的手机内核开启docker支持
欢迎来到猫猫的Docker实验室喵!在这里,你将会学习如何为自己的手机开启docker支持,期待你的成果喵~文章会包含一些小技巧和docker基本异常处理,毕竟这只可爱的猫猫是不会向你隐瞒自己知道的东西的,真是一只傻的可爱的猫猫呢~文章内所述手机为arm64架构,上古时期的32位架构请自行修改。注:pixel系列设备请换用repo工具以及官方构建工具并使用ThinLTO(在内存小于32G的设备上)。好了让我们开始吧喵!
首要前提:
手机能够解锁bl并获取root权限
手机内核开源,尽量是有大佬维护源码的
拥有一定Linux基础
如果设备或个人不满足以上条件者请自行退出喵!本猫猫是没时间给你解释为什么的。
前期准备:你可能需要准备如下内容:
Linux系统环境(理论上手机电脑均可,电脑最佳)
熟练使用搜索工具
git和make以及代码编辑工具的使用
基本了解cpu架构差异
这些内容猫猫是不会教你的,毕竟这不是文章重点喵唔……当然最好有个脑子,可惜猫猫没有呜QAQ………
正式操作:0x0001 root手机,不必多说0x0002 获取手机代号和cpu代号这一步请通过搜索工具进行。比如 ...
从零开始实现一个Linux容器
欢迎来到猫猫的C语言实验室喵!
序言:文中所述源码是以MIT协议开源的,本文转载请注明原创作者为Moe-hacker,除此之外无其他要求。作者其实想将本文改名为《Re:从零开始的container生活》,不过考虑到搜索引擎可见性就算了吧。文章非基础教程,当然写这个容器实现前咱也是零基础的,所以可以放心观看喵~有关容器安全原理的具体作用请看咱的另一篇文章:浅谈Linux容器安全:chroot,capability与namespace技术文章所有代码均为C语言实现。所有代码均为root权限执行。内容遵守最简代码原则,尽量以最少的代码展示C语言接口的调用。选修部分代码未给出main()函数,请手动添加测试。程序完善,异常处理与架构设计在选修章节。本文容器目录为/data/alpine,作为最小测试系统。文章分必修和选修两个部分,选修部分技术要求可能较高,里面用到的函数未给出详细解说,请自行查看相关文档学习。成品展示:Moe-hacker/moe-container
头文件:为了方便(其实是懒),本文所有C语言代码将共享以下头文件:
123456789101112 ...
termux配置文件分享
termux版本:这里猫猫比较喜欢termux-monet,带有monet取色支持和背景自定义。链接:HardcodedCat/termux-monet
欢迎信息:原版:Generator/termux-motd修改版:Moe-hacker/termux-motd修改内容不介绍了,效果见仓库。
123git clone https://github.com/Moe-hacker/termux-motd ~/.motdecho ~/.motd/init.sh >> ~/.bashrcecho ~/.motd/init.sh >> ~/.zshrc
如果手机“恰好”有docker支持:
1mv ~/.motd/26-docker.disabled ~/.motd/26-docker
自启动docker并显示信息。
配色修改:贴出猫猫的配色:
12345678910111213141516171819background: #1E1E2Eforeground: #CDD6F4cursor: #A6E3A1c ...
hexo博客配置教程
咱自己的博客配置教程喵~
前期准备:本博客在linux环境下搭建,部分内容于windows下稍有不同。你需要:git,ssh,nodejs,npm,github-cli。你可能还需要:一个脑子。可惜猫猫是没有脑子的喵呜………去github账号设置=>开发者设置=>令牌中获取一个token。在你的github账户下创建 用户名.github.io这个仓库。注:github-cli的token为明文存储,请勿在不受您本人信任的设备上用这种方式登录。然后:
123gh auth logingit config --global user.email "你的电子邮件地址"git config --global user.name "你的github用户名"
hexo部署:1234567cd ~mkdir hexonpm config set registry https://registry.npmmirror.com/npm install -g hexocd hexohexo initnpm install hexo- ...
沨鸾的Shell小技巧
欢迎来到猫猫的Shell实验室喵!跟着沨鸾学shell,学到最后只会喵喵喵。文章非入门教程,不要妄想本猫亲自教你基础知识,哼!生草部分也会包含有一些花式操作。本文不定期更新。
正经部分:语法规范:变量要加{}括起来。函数最好加个function关键字。头部一定要有释伴(shebang)。记得写注释,要不然也就上帝能看懂你写的什么了。退出时要有返回状态。能用[[]]就别用[]。尽量用printf代替echo使用以提供更好的兼容性。没用的输出记得丢弃。> /dev/null丢不掉就2>&1 > /dev/null。不要定义太复杂的架构,比如函数互相调用。当然猫猫基本没怎么遵守过。
三元表达式:比如你想要这样一段的功能:
12345if [[ $x == 1 ]];then echo testelse echo failfi
你可以这么写:
1([[ $x == 1 ]]&&echo test)||echo fail
测试一下:
1234x=0([[ $x == 1 ]]&&echo te ...