lefo的菜鸡实录

又是一个android开发

前言

上一篇说到nx54路由器如何在官方防火墙上加一个自己主机允许访问的规则,在不关闭防火墙的情况下,还能走ipv6访问到内网设备,里面有提到ipv6地址变化的问题。这篇主要说说ipv6变化后如果通知,以及一部分nginx配置心得。

ip变化通知,同时更新路由防火墙规则

注意以下所说的ip都是指ipv6,因为ipv4内网地址可以直接和mac地址绑定,不用通知你。

阅读全文 »

前言

NX54终于更新固件了,新版本支持配置关闭ipv6防火墙,但是,防火墙关闭,相对而言风险也就上来了。其实最好的办法是,在防火墙上稍微开一个小口就行了,也就是,只允许目标地址是你指定IP的数据通过,今天就大概说说如何最小风险去处理这件事情。主要有以下两个操作:

  1. ip6tables限制指定目标ip转发
  2. 关闭要访问的服务器的ssh访问,windows主机可忽略
阅读全文 »

前言

项目中接入了打开pdf文件的功能,使用的是https://github.com/barteksc/PdfiumAndroid/。现在想升级一下pdfium库,旧库具体原因就不解释了,毕竟这个项目最后一个commit在6年前,当然,平常用来接入打开pdf也是没问题的。

开源库

在google一通搜索,发现pdfium库包含两套,一套在aosp中,另一套在chromium中。

构建aosp版

准备

  1. ubuntu 可以使用virtual box去装个虚拟机
  2. 200GB以上硬盘空间,清华会推荐你下载aosp-latest.tar再解压,光压缩包80G了,解压完我就把tar包删了

获取aosp源码

推荐使用清华镜像https://mirrors-i.tuna.tsinghua.edu.cn/help/AOSP/,可结合google的官方说明https://source.android.com/docs/setup?hl=zh-cn。具体指令就不介绍了,主要是repo sync费时,注意选好你想构建的build tag。

阅读全文 »

前言

之前买了一台NX54路由器,结果这路由固件完全不给用户定制化的机会,研究如何保存ip6table的配置没有成功,但是成功保存了telnet开启配置,分享一下。这套固件的情况如下:

  1. 默认开启ipv6防火墙,且关闭后,重启会失效,再次打开。
  2. 可以通过telnet连接路由,telnet配置也不保存,停电或者重启后失效。
  3. 根目录使用overlayfs做到了tmp下,是整个系统会恢复的主要原因。
  4. 提供了/mnt目录保存数据,/mnt/bak/startup.bak就是所有配置项。
    阅读全文 »

导读

jetpack当时还没来得及用,整个项目就被砍掉了,这两年一直没有接触,最近好多岗位都要求会jetpack,这两年逐渐用的人越来越多,重学Android赶紧简单了解一下,做了一点整理,都是皮毛,供自己查笔记用吧,如果有一些知识点需要增加备注,随时修改。

Navigation 用于fragment切换

优点

  • 可视化,可以as中可视化编辑
  • 通过destination和action完成页面的导航
  • 参数传递安全, safe args
  • 支持deeplink,支持创建PendingIntent
    阅读全文 »

前言

大概半个月前,群里的一个小伙伴问,谁能把某电商APP的订单列表导出到电脑,有个私活,报个价。其实我对这种稍微有点了解,无非是抓包,破解。但通常App的网络请求会有一套签名验证机制,所以要想模拟出整套请求流程,也算比较复杂。和群里的讨论后,觉得用hook做合适,但群里和我一样,都是安卓开发,没有逆向工程师,首先想到的是xposed。

xposed太重

我之前倒是写过xposed,xposed缺点有两个,第一就是环境复杂,你得安装xposed环境才可以,目前都是通过virtual xposed来使用。再就是插件一但有修改,就得重启手机。不过这也带来了一个有点就是持久化,只要装进去,就一直存在。那有没有更轻量级的工具可以达到这种效果,后来在网上找到了frida。(这也好几年了,我居然不知道)

阅读全文 »

导读

因为2021年开始做C++,之前的项目还没来得及怎么用kotlin,就直接被爸爸宣布死刑了。所以目前找工作等于需要再学一次kotlin,特别是协程,之前几乎没有了解。买了本书,再加上网上的各种文章,整理一点笔记出来。如果有和我差不多的,可以看一看

协程,协程可以理解为某种自由调度的任务,主要是对函数挂起,恢复。听起来像线程的唤醒,本质上和线程没什么关系。使用协程,我们可以以单线程的方式写多线程的代码,同时还能节省线程资源,并且能方便处理异常信息,返回结果等。我们给函数前面加一个suspend关键字,就变成一个挂起函数,可以在函数内操作协程的挂起和恢复。其中部分内容有重复,不必理会。主要参考资料<深入理解Kotlin协程>,算是一个简单的笔记整理。

协程的API

什么是挂起

阅读全文 »

第2节

防卫式声明,防止重复include引起的问题(guard)

1
2
3
4
5
//complex.h
#ifndef _COMPLEX_
#def _COMPLEX_
...
#endif
阅读全文 »

背景

想要编译一个自己的framework,用来在系统api中插入自己的代码,监听一下应用的行为,比如获取imei,获取网络。最直接的想法就是,修改安卓源码,直接编译出一个系统镜像,给模拟器使用。

准备:

  1. 因为之前编译过android.jar,所以源码环境还有,直接开工,或者看以前编译的文章有讲。

  2. 修改代码,比如找到TelephonyManager.java,在getDeviceId()中插入自己的代码。

阅读全文 »

需求

没有需求,自己看了一眼自己之前写的打包脚本,简直无法看下去。而且,产品经理的定制化需求越来越多,用shell脚本的可读性也越来越差,再加上里面一堆的sed命令,惨不忍睹。

改!!!

分析

gradle其实支持自定义参数,关于自定义参数的介绍,参考官方文档:https://docs.gradle.org/current/userguide/build_environment.html,简单说一下用到的:[Gradle properties](https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties):

阅读全文 »
0%