自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Android移植nginx

(1)add: sepolicy/legacy/vendor/common/deviceinfod.te文件。1,nginx包 copy至对应的目标地方。

2025-03-27 14:30:31 805

原创 RTMP推流服务器nginx在linux上的编译部署

解决方案: 1, 增加nginx-http-flv-module\dash的编译。2,.configure failed问题,安装 pcre。3,.configure failed问题,安装zlib。4, 增加GCC编译选项: -lcrypt。

2025-03-26 11:57:25 691

原创 Zram & Swap机制

zRAM 机制建立在 swap 机制之上,swap 机制是将进程不常用的内存交换到磁盘中,而 zRAM 机制是将进程不常用的内存压缩存储在内存某个区域。当进程访问到这些被交换到 zRAM 块设备的内存时,swap 机制将会通过 zRAM 块设备解压这些内存,并且重新建立与进程的地址映射关系。将这些不常用的内存交换到 zRAM 块设备中,而 zRAM 块设备首先会对这些不常用的内存进行压缩,然后存储起来。把不常用的内存压缩存储到 zRAM 块设备后,swap 机制会把这些不常用的内存归还给内核。

2024-12-23 13:58:08 372

原创 Android minui实现简单的双屏异显

Android默认支持一个主屏,Android N以后退出双屏异显的接口api,但是这里并不是通过创建两个displaydevice来实现双屏显示而是通过另外启动一个进程,使用minui将第二个屏的显示数据推送到第二个屏上(小屏,也叫副屏)。在Android设备中譬如,关机充电动画,自动测试程序,recovery模式界面等都是用minui绘制界面,进行人机交互,完成一些必要的功能。minui是Android自带的一个画图工具,可以绘制一些简单的图形和图像,显示png图片,显示字符串等。

2024-10-16 14:45:05 346

原创 修改Android关机充电 界面

把battery_scale.png替换掉 system/core/healthd/images路径下面的battery_scale.png即可。使用interlace-frames.py来解包battery_scale.png会报错。interlace-frames.py脚本需要修改如下,依然报错。而在python3中,“/”符号是保留小数的,是float型。python2的规则中,“/”是取整,是int型。屏幕填充白色(255,255,255)解决:改为“//” 即可。

2024-10-15 15:53:56 196

原创 Linux C++开发技术点整理(一)

典型的服务器程序可以同时服务于多个客户端,当有客户端发起连接时,服务器调用的accept()返回并接受这个连接,如果有大量的客户端发起连接而服务器来不及处理,尚未accept的客户端就处于连接等待状态,listen()声明sockfd处于监听状态,并且最多允许有backlog个客户端处于连接待状态,如果接收到更多的连接请求就忽略。//整个是一个while死循环,每次循环处理一个客户端连接,即可以处理多个客户端连接,不同的客户端连接,返回的client_addr不一样,文件描述符connfd不一样。

2024-09-25 14:11:32 1033

原创 Android开机向导和Default HomeLauncher问题梳理

开机向导APK的开发建议prefer和rolemanager的使用

2024-09-25 14:09:30 1109

原创 定义一个新的protected-broadcast广播

一、android:sharedUserId=”android.uid.system”系统中所有使用android.uid.system作为共享UID的APK,都会首先在manifest节点中增加 android:sharedUserId=”android.uid.system”,然后在Android.mk中增加 LOCAL_CERTIFICATE := platform。2,被定义为protected-broadcast的广播--受保护的广播,只能是拥有系统权限的APP,其他APP没有权限发送该类广播。

2024-08-02 10:51:57 550

原创 Android Linux 全屏加密FDE

修改fstab.qcom文件:‌首先,‌需要在/vendor/etc/目录中找到fstab.qcom文件(‌或类似名称的文件)‌,‌这个文件包含了文件系统的挂载信息。‌删除这部分代码后保存文件,‌并进行一次data格式化,‌之后data分区就不会再被加密了。data加密的判断方式:格式化data后,第一次开机时,读取【/vendor/etc/fstab.qcom】文件,该文件是否存在上面我们删除的代码,如果存在,则对data进行加密操作,若不存在,则不对data进行data操作。

2024-08-02 10:47:46 479

原创 Android 增加适配HID设备按键-蓝牙手柄

KeyLayoutFile: /system/usr/keylayout/Generic.kl这句打印,以及第一章的遥控器规格书,可以得知方案商的默认配置。如SETTINGS,对应到Andoird KeyEvent.java的按键,就是 KEYCODE_SETTINGS。根据我们的需要,我们把蓝牙按键映射为相同的红外按键的Android键值码,也就是第3列。我们需要从此文件提取键值,也就是kl文件的第2列,这个键值方案商并未给出。遥控器方案商将自己的蓝牙按键映射为标准的蓝牙键盘按键。

2024-08-02 10:46:33 757

原创 RTP RTCP RTSP RTMP

总的说来,RTSP是一个流媒体表示 协议,主要用来控制具有实时特性的数据发送,但它本身并不传输数据,而是必须依赖于下层传输协议所提供的某些服务。RTP数据协议负责对流媒体数据进行封包并实现媒体流的实时传输,每一个RTP数据报都由头部(Header)和负载(Payload)两个部分组成,其中头部前12个字节的含义是固定的,而负载则可以是音频或者视频数据。RTP用到的地方就是 PLAY ,服务器往客户端传输数据用UDP协议,RTP是在传输数据的前面加了个12字节的头(描述信息)。

2024-08-02 10:44:19 312

原创 USB -PD UFP DFP DRP

USB PD(USB Power Delivery):PD是一种通信协议,它是一种新的电源和通讯连接方式,它允许USB设备间传输最高至100W(20V/5A)的功率,同时它可以改变端口的属性,也可以使端口在DFP与UFP之间切换,它还可以与电缆通信,获取电缆的属性。②UFP:上行端口,可以理解为Device,UFP可以理解为受电端口,DFP为供电端口,UFP从VBUS中取电,并可提供数据。③DRP:双角色端口,DRP既可以做DFP又可以做UFP,也可以在DFP和UFP间动态切换,典型设备是:笔记本电脑。

2024-08-02 10:43:14 528

原创 Android启动时间调试工具-bootchart

分析启动时间:通过BootChart图,可以清楚地看到哪些服务或进程在启动过程中占用了较多时间,这对于优化系统启动速度非常有帮助。识别性能瓶颈:通过分析BootChart图,可以识别出启动过程中的性能瓶颈,例如某个服务启动特别慢或者某个阶段消耗了过多的资源。

2024-08-02 10:41:15 226

原创 Android新增加物理按键流程,onKeyDown,onKeyUp,onKeyLongPress长按键功能实现的方法

Android新增加物理按键流程,onKeyDown,onKeyUp,onKeyLongPress长按键功能实现的方法

2024-04-18 16:56:37 1025 2

原创 Android NITZ 与 NTP 时间和时区的同步

NTP在无SIM卡或operator不支持NITZ时使用,单纯通过网络(GPRS/WIFI)获取时间,只提供时间信息,没有时区信息(因此在不支持NITZ的地区,自动获取时区功能实际上是无效的)默认服务器地址time.android.com,国内不可用,不多说,直接换cn.ntp.org.cn .pano2上用的是:cn.pool.ntp.org。可以提供时间和时区信息。NTP项目亚洲时间服务器:asia.pool.ntp.org。NTP项目国内时间服务器:cn.pool.ntp.org。

2024-03-14 19:04:45 1070

原创 wifi adb

这样代表已连接成功, 505e894。505e894是udid,device是设备,连接的设备主要根据 udid 连接。adb disconnect 192.168.1.39:5555 断开设备连接。2、打开电脑CMD,输入命令adb start-server开启adb服务。:1、首先将电脑和手机连接同一个WIFI,并插上数据线。3、输入adb devices 查询已连接的设备。

2024-03-14 16:08:00 193

原创 Android APP 通过socket和server通信,缺少SSL证书导致通信失败 问题解决

重命名“cert.pem”为“6187b673.0”(查看命令执行后第一行字符串+.0),并将文件“6187b673.0”通过 Root 文件管理器、adb 等保存至 Android 设备目录“/system/etc/security/cacerts/”下;设置->安全->加密与凭据->信任的凭据,请check一下有没有这些SSL证书。手机上安装方法:选择菜单:从存储设备安装。下载pem和txt,组合成Android cert文件。

2024-03-14 12:13:04 447

原创 Android开机速度提升 Performance,继上一篇文章,继续修改的流水账

1, device/qcom/common/rootdir/etc/init.qcom.rc 和 init.qcom.early_boot.sh, qcs605.mk优化,仅仅设置lcd 密度值为240,其他都删除掉,可以优化500ms。//caoyong,modify 轮询时间500ms->20ms。2,Camera 启动preivew时去掉200ms的延时,可以提前200ms启动。

2024-03-14 12:03:54 433

原创 Android中添加自定义Lib、SO 库,并解决UnsatisfiedLinkError 和library_public问题

Android N 版本有个新feature,就是普通应用不能直接引用系统的一些so库了,只能直接引用public.libraries.txt文件中过滤的so库。三,修改vendor/qcom/proprietrary/common/config/public.libraries.txt文件,公布出去,增加如下。在android N上使用 .so作为apk的第三方库的时候,会发生java.lang.UnsatisfiedLinkError。二,增加SO库,预编译到vendor目录。

2024-03-14 11:55:16 904

原创 SeLinux权限增加,编译报错SELinux违反Neverallow 和 Differ问题,Logcat 和 Kernel log中avc: denied问题的解决

system/sepolicy/prebuilts/api/29.0/public和system/sepolicy/public下面的文件,必须保持一致。system/sepolicy/prebuilts/api/29.0/private和system/sepolicy/private下面的文件。另外qcom平台还要注意,有些权限需要在device/qcom/sepolicy/... 目录下修改te文件。带入内容:修改hal_health_default.te。tclass:表示什么文件类型缺少权限。

2024-03-14 11:32:14 2066

原创 Android系统具体裁剪

2. external/icu4c/stubdata/icu-data-default.txt: 修改此文件,去除编译出的icu.dat文件大小,去除不需要的语言,重新用脚本生成想要的dat文件。4. frameworks/base/data/sounds/AllAudio.mk: 去除不需要的声音文件(除了ui的保留,其他都可以去除)frameworks/base/data/fonts/fonts.mk: 去除不需要的字体。external/skia/Android.mk: 去除其中test的编译。

2024-01-29 17:21:21 336

原创 Android四大组件

需要注意的是在AndroidManifest文件中进行配置的广播接收者会随系统的启动而一直处于活跃状态,只要接收到感兴趣的广播就会触发(即使程序未运行)。服务关闭:对于通过startService()方法启动的服务要调用Context.stopService()方法关闭服务,使用bindService()方法启动的服务要调用Contex.unbindService()方法关闭服务。1,活动(activity)是所有Android应用程序的门面,凡是在应用中能看到的东西,都是放在活动中的。

2024-01-29 17:12:28 401

原创 repo & git 使用

git am --signoff 0001-limit-log-function.patch # 添加-s或者--signoff,还可以把自己的名字添加为signed off by信息,作用是注明打patch的人是谁,因为有时打patch的人并不是patch的作者。$ git am 0001-limit-log-function.patch # 将名字为0001-limit-log-function.patch的patch打上。# 把所有的修改文件打成 patch。

2024-01-29 16:59:55 340 1

原创 Android开机速度优化

而被放到 swap 分区的应用程序,所占用的内存都是被压缩过的,比如,微信在普通内存中占用 50 MB 的空间,如果压缩率为 0.4,则放到 swap 分区里面的数据只需要 20 MB 的空间,这样 swap 分区里面就可以存放更多后台临时不用的应用程序,变相扩展了内存的大小。(3)第三个参数1 表示可接收的最高优先级,当printk disable控制台输出时,设置第一个参数为1,但是,从内核等级来看,还有优先级0,这个是printk最高级优先级,一般用于内核严重消息打印。

2024-01-29 16:58:36 1073

ADB 工具 adb.exe

有效可用的adb .exe

2024-03-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除