lefo's blog

又一个android开发人员

前言

之前买了一台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):

阅读全文 »

进程保活

android这个生态真的是不好,从一开始,大家就想方设法在后台常驻,为了让自己app不被杀,绞尽脑汁想各种存活办法。目前,之前用的大部分保活方案,在手机上几乎都是失效的,尤其是一些国内厂家机型,提供一键清理功能,把你正的运行的APP,杀的渣也不剩。所以,目前还能正常使用的方法就只有一种,那就是两个进程互相监听。

阅读全文 »

前言

在北京摇号摇了18次了,下次开始就是四倍概率。然后,中签还是遥遥无期,隔壁坐的同事摇了两年就摇到了,万分羡慕。有时候晚上想去溜达一下,要去找gofun共享汽车还要走1公里多,还车还要走1公里。于是就有了想买一辆摩托车的想法。

要买车,肯定得有驾照,挑选完以后,报了海淀驾校,小区门口就有驾校的班车,关键是便宜,只要1000块。在我家那18线城市的小地方也得800多。于是报名,开始上法陪课。但法陪课每一章节必须自已手动点开始,很是麻烦,于是就想写个程序代替自己手点。

阅读全文 »

前言

公司要做一个和图片有关的功能,一说图片处理,大家首先想到的就是强大的OpenCV。OpenCV很强大,官方也提供了android专用的sdk,直接将so和jar放入项目中就能使用。尽管官方推荐的也是这种方式,但有一个问题是,OpenCV的库很大,有10MB,很多公司整个APK都没有10MB,如果要把真个库都放到项目中,那还是挺大的。所以,这里就需要我们自己编译。中间折腾了好久,写个文章记录一下。

准备

下载OpenCV

地址 https://opencv.org/releases/
选择Android平台的包

这里注意了,4.0的版本,要求api level是21以上,所以,如果你的APP是要在21以下使用,不要下载这个。

3.x的版本不清楚,但我试了OpenCV 2.x的版本是api level 8以上。2.x的版本,需要自行google,官方应该已经不提供了。

阅读全文 »
0%