资讯专栏INFORMATION COLUMN

如何将apk文件更新到系统中vendor文件夹下

tinna / 4513人阅读

摘要:为什么要更新到目录下在知道如何将文件更新到系统文件之下之前我们需要先了解下源码和开发相关的相关知识系统各个目录说明源码目录说明截取关键目录说明底层文件系统库应用及组件语言厂商定制代码可以看到目录是厂商定制化的目录因此将文件更新到

1. 为什么要更新到vendor目录下

在知道如何将apk文件更新到系统文件之下之前我们需要先了解下Android源码和Android开发相关的相关知识.

1.1 Android系统各个目录说明

Android 源码目录说明

截取关键目录说明

Android
|-- system (底层文件系统库、应用及组件——C语言)
|-- vendor (厂商定制代码)

可以看到vendor目录是厂商定制化的目录, 因此将apk文件更新到vendor目录之下是一种权限较高的操作.

1.2 手机app开发和机顶盒app开发的区别

    手机app开发是直接基于Android原生无裁剪的SDK开发的. 直接使用原生系统提供的各种API. 且一般安装在用户目录 data/app 之下.

    机顶盒的系统是基于原生AOSP裁剪并进行相应扩展而来的系统, 在其上开发的app调用了很多非原生自带的API等. 且一般安装在系统目录 system/app 或者厂商定制目录 vendor/app 之下.

2. 更新到vendor文件夹之下的方法 2.1 通过U盘方式:

    将需要更新的apk文件例如 APP_NAME.apk 文件存放在U盘里.

    将U盘插在板子上通过 SecureCRT.exe 工具进行拷贝.

    SecureCRT.exe 工具将开发板连接之后在 su 模式下进行 cp 命令 cp /storage/sda1/APP_NAME.apk vendor/app/.

    步骤3会提示 cp: vendor/app/APP_NAME.apk: Read-only file system 表示该文件夹不可写.需要将该文件夹进行挂载.

    输入命令mount -o rw,remount /vendor 此时vendor文件夹就是具有可读可写的权限.

    重复步骤3的命令则可以将apk文件更新到 vendor/app 文件夹之下, 再输入 reboot 重启命令则可以看到最新的app了.

2.2 通过Android自带adb工具进行更新

    确保开发板和电脑的网络处于同一个网段, 便于后续通过adb进行网络调试.

    通过adb命令连接开发板 adb connect [开发板的ip地址:5555], 例如 adb connect 10.100.10.10:5555 如果提示 connected to 10.100.10.10:5555 则表示连接成功. 其他则表示连接失败. 检查ip地址和端口号是否正确.

    再通过 adb devices 查看连接的设备数量, 一般情况下会显示如下:

List of devices attached
10.100.10.10:5555        device

但是如果开发板和电脑之间还用双头USB线进行连接的话显示如下:

List of devices attached
0123456789      device
10.100.10.10:5555        device

会发现多了一个0123456789 设备

    如果只有一个设备时则直接通过 adb push [apk路径] /vendor/app 例如 adb push F:apkAPP_NAME.apk /vendor/app 提示 F:apkAPP_NAME.apk: 1 file pushed. 9.3 MB/s (19684462 bytes in 2.021s) 则表示成功.

    如果有多个设备时则通过 adb -s 设备ip地址:端口 push [apk路径] /vendor/app 例如 >adb -s 10.100.10.10:5555 push F:apkAPP_NAME.apk /vendor/app

    步骤4或者步骤5会出现方法1时的权限问题 F:apkAPP_NAME.apk" to "/vendor/app/APP_NAME.apk": remote couldn"t create file: Read-only file system, 则需要通过adb将文件夹进行挂载.

    进入设备的 shell 模式

一个设备时的命令:

>adb shell
:/ #>mount -o rw,remount /vendor
:/ #>exit
再次进行步骤4

多个设备时的命令:

>adb -s [ip地址] shell
:/ #>mount -o rw,remount /vendor
:/ #>exit
再次进行步骤5

文/谢康

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/7272.html

相关文章

  • 系统应用集成过程的一些坑

    摘要:我是这么猜想的应用运行期间,类加载器所需的源代码是从缓存中加载,如果这里没有缓存,则去对应的中解压拿到,转换成,再次缓存到,然后让类加载器去加载。 本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 这次想来讲讲系统应用集成过程中遇到的一些坑,尤其是 so 文件相关的坑。 背景 埋这些坑的最初来源是由于测试人员在集成新终端设备时提了个 bug: app 在这个设备上无法启动...

    BDEEFE 评论0 收藏0
  • Android系统编译时集成三方APK

    摘要:前言最近在学习系统开发,在开发过程中可能要到将三方集成到系统中的需求。一种是在系统编译完毕之后,再将三方文件放置到系统目录之下。还有一种是在系统编译时顺带着将三方文件打包到系统中。例如可以换成自己集成的第三方的文件名。1. 前言 最近在学习Android系统开发,在开发过程中可能要到将三方apk集成到系统中的需求。目前我了解的方法有两种。 一种是在系统编译完毕之后,再将三方apk文件放置到...

    Baaaan 评论0 收藏0
  • Android 的 so 文件加载机制

    摘要:内部有一个类型为的静态变量,不同版本,这个变量名可能不一样,但作用也都一样,用来存储这些系统属性值,这样程序需要的时候,调用读取属性值时其实是来这个静态变量中读取。或者,你对的类加载机制有所了 本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 最近碰到一些 so 文件问题,顺便将相关知识点梳理一下。 提问 本文的结论是跟着 System.loadlibrary() 一层层...

    habren 评论0 收藏0
  • swoft| 源码解读系列一: 好难! swoft demo 都跑不起来怎么破? docker 了解

    摘要:源码解读系列一好难都跑不起来怎么破了解一下呗阅读框架源码第一步搞定环境小伙伴刚接触的时候会感觉压力有点大更直观的说法是难开发组是不赞成难这个说法的的代码都是实现的而又是世界上最好的语言的代码阅读起来是很轻松的开发组会用源码解读系列博客深 date: 2018-8-01 14:22:17title: swoft| 源码解读系列一: 好难! swoft demo 都跑不起来怎么破? doc...

    shenhualong 评论0 收藏0
  • swoft| 源码解读系列一: 好难! swoft demo 都跑不起来怎么破? docker 了解

    摘要:源码解读系列一好难都跑不起来怎么破了解一下呗阅读框架源码第一步搞定环境小伙伴刚接触的时候会感觉压力有点大更直观的说法是难开发组是不赞成难这个说法的的代码都是实现的而又是世界上最好的语言的代码阅读起来是很轻松的开发组会用源码解读系列博客深 date: 2018-8-01 14:22:17title: swoft| 源码解读系列一: 好难! swoft demo 都跑不起来怎么破? doc...

    rollback 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<