当前位置: 首页 > news >正文

Android12之apex调试

1.问题

在调试libtinyalsa.so中添加log后,但是发现push so后,却没有log打印,why?

2.分析

以下为libtinyalsa.so的位置

/system/lib64/libtinyalsa.so
/system/lib/libtinyalsa.so
/apex/com.android.vndk.v31/lib64/libtinyalsa.so
/apex/com.android.vndk.v31/lib/libtinyalsa.so
/apex/com.android.vndk.v31@1/lib64/libtinyalsa.so
/apex/com.android.vndk.v31@1/lib/libtinyalsa.so

并且发现/apex目录下全是只读权限,这该怎么整?

3.看下Google对APEX的解释图

在顶层,APEX 文件是一个 ZIP 文件,其中的文件以未压缩的形式存储,且位于 4 KB 边界。

APEX 文件中的 4 个文件如下所示:

  • apex_manifest.json

  • AndroidManifest.xml

  • apex_payload.img

  • apex_pubkey

APEX 命名准则

为了避免伴随平台发展产生的新 APEX 之间的命名冲突,请遵循以下命名准则:

  • com.android.*

  • 为 AOSP APEX 预留。并非任何公司或设备所专用。

  • com.<companyname>.*

  • 为公司预留。可能由相应公司的多台设备使用。

  • com.<companyname>.<devicename>.*

  • 为特定设备(或部分设备)的专属 APEX 预留。

APEX 文件是 APK 文件

APEX 文件是有效的 APK 文件,因为它们是包含 AndroidManifest.xml 文件的已签名 ZIP 归档文件(使用 APK 签名方案)。这允许 APEX 文件使用 APK 文件的基础架构,例如软件包安装程序应用、签名实用程序和软件包管理器。

APEX 中的文件类型及其位置

文件类型

在 APEX 中的位置

共享库

/lib 和 /lib64(在 x86 中,翻译后的 ARM 的位置为 /lib/arm)

可执行文件

/bin

Java 库

/javalib

预编译文件

/etc

也就是说apex的lib库和/system/lib64的system分区系统库已经分离了,可以单独替换。

3.解决方法
# make com.android.vndk.current -j12
# adb install out/target/product/blueline/system/apex/com.android.vndk.current.apex
# adb reboot
http://www.lryc.cn/news/6368.html

相关文章:

  • Python - 数字(Number)数据类型常用操作
  • QT(51)-动态链接库-windows
  • [Vivado那些事儿]将自定义 IP (HDL)添加到 Vivado 模块设计(Block Design)
  • 开学必备数码清单,大学生开学必备数码好物分享
  • 【面试题】常见前端基础面试题(HTML,CSS,JS)
  • Vue (4)
  • 静态库和动态库的制作
  • Oracle实现高可用性的工具(负载均衡/故障切换)
  • 图解经典电路之OCL差分功放-三极管分立器件电路分析
  • thymeleaf模板注入学习与研究--查找与防御
  • 第七章:Linux最小化搭建环境解说2
  • 两道链表经典算法题---链表有无环(基础+进阶)
  • 2023/1/14总结
  • Python 之 NumPy 统计函数、数据类型和文件操作
  • 互联网新时代要到来了(一)什么是Web3.0?
  • [Yocto] 直接向deploy/images目录部署binary
  • HarmonyOS Connect原子化服务功能开发(Wi-Fi/Combo)设备控制开发与实现(二)
  • 浅析 Makefile
  • 保护品牌线上声誉的5种方法
  • Java多重选择结构,超详细整理,适合新手入门
  • SCI写作,一定要避开这些“雷点”!
  • 3GPP-NR Band14标准定义频点和信道(3GPP V17.7.0 (2022-12))
  • 分库分表索引设计:分布式环境下的 主键索引、二级索引、全局索引的最佳设计实践
  • 2023年全国最新保安员精选真题及答案
  • 计算机网络之http07 http2,http3
  • 内网渗透(二十五)之Windows协议认证和密码抓取-使用Hashcat和在线工具破解NTLM Hash
  • TongWeb8防止System.exit代码导致的进程停止
  • PMP每年考几次,费用如何?
  • 【Kubernetes】【一】Kubernetes介绍
  • C语言:结构体