系统内置app的需求
在与各工作室对接中操作单中,很多需要内置客户特定的有些app到系统里,这样方便客户刷入固件后直接调用。例如内置apk 去开机引导 去usb调试 默认开启usb安全设置等等。那么很多app内置有不同的反应。有的可以直接内置。有的需要加so才能解决
我们先来看一张图片
1---直接内置方法
将需要的app直接放置系统分区里。具体可以在
system
data-app
priv-app
product
等常用内置的位置。具体可以了解各个文件夹具体的作用。有些软件内置到系统分区会报错。例如当前的面具root的app。分区位置的概念可以参考
将app放置到所示文件夹后重新打包刷入手机即可正常使用。这种方法通用有所有内置app的操作。当然有的app这样方法内置后软件会有bug。那么接着看
2----加入app文件内的so到系统
看第一张图片。我们可以了解到app分解后里面的文件组成。其中lib下就是对应机型运行依赖的库文件。那么如果内置后app运行出错或者bug就需要把app里lib下的so文件内置到UI有的系统lib下。
apk里的so库文件如何放置到系统lib下
在android APK的根目录有一个libs文件夹,此文件夹下包含了armeabi 和armeabi-v7a或arm64-v8a等文件夹,我们的c代码编译成的本地库(各种.so)就会放在这两个文件夹其中的一个。
那armeabi-v7a 与armeabi有什么区别,该将so库放哪个文件夹?
armeabi和armeabi-v7a是表示cpu的类型,我们知道一般的手机或平板都是用arm的cpu,不同的
cpu的特性不一样,armeabi就是针对普通的或旧的arm cpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm cpu
这两个目录都可以放,具体要看开发的apk的定位,如果想将apk发布到网络上供不同的机器使用,那么建议用armeabi(兼容性好),如果只是自己平台上用,则可以用armeabi-v7a。那么如何放置最好查看当前内置固件里的cpu信息。例如
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=arm64-v8a
ro.product.cpu.abilist=arm64-v8a,armeabi-v7a,armeabi
ro.product.cpu.abilist32=armeabi-v7a,armeabi
ro.product.cpu.abilist64=arm64-v8a
那么可以将app里的arm64-v8a下的放置到系统文件夹下
然后重新进行打包刷入手机测试。
3--app文件夹内置方法
在高版本安卓固件中。直接是以文件夹放置内置app的。查看其系统固件就可以了解
这种可以直接将app以系统原app一样的方法内置到系统文件夹下即可。当然这些只是常用的内置方法。还有一些隐藏内置app的操作。避免不法分子用于非常规操作。不做阐述
关注我 了解安卓机型基本常识和一些简单的故障解决