预制到system/app下面开机却没有

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了预制到system/app下面开机却没有相关的知识,希望对你有一定的参考价值。

参考技术A 解释为什么预制到system/app下面开机却没有
PMS开机阶段会去scan /system/priv-app,/system/app,/vendor/app 等目录下的apk文件,扫描过程是会查看apk是否有效,无效就不安装到系统
以下是遇到的一个预制到system/priv-app目录下的应用,开机之后未正常显示的问题

PackageParser.PARSE_IS_SYSTEM_DIR属性的应用具体查看PackageManagerService的源码
1.1 第一类System app: 特定的shared uid的app 属于system app
例如:shared uid为android.uid.system,android.uid.phone,android.uid.log,android.uid.nfc,android.uid.bluetooth,android.uid.shell。这类app都被赋予了ApplicationInfo.FLAG_SYSTEM标志
1.2 第二类System app: 特定目录中的app属于system app
特定目录包括:/vendor/overlay,/system/framework,/system/priv-app,/system/app,/vendor/app,/oem/app。这些目录中的app,被视为system app。

//02-06 16:20:10.561700 936 936 W PackageManager: Failed to scan /system/priv-app/DeviceManager_service: Package /system/priv-app/DeviceManager_service/DeviceManager_service.apk has no certificates at entry AndroidManifest.xml
//调用 jarFile.getCertificateChains(entry);

Android Framework实战预制packages/apps下应用源码预制使用Android.bp方式

hi粉丝朋友大家好!
上节课也给大家讲解了Android.mk方式我们桌面把Android Studio的gradle过程桌面预制到了系统源码的packages/apps下面,这里我们来使用Android.bp进行预制,因为现在高版本大部分其实都是使用Android.bp,新版本packages/apps下面android 12几乎看不到Android.mk的身影,所以当然我们也需要与时俱进。但是Android.bp相对来说资料较少,不像以前的Android.mk可以继承很多linux的makefile,所以我这边些Android.bp大部分也只能依葫芦画瓢,参考其他应用怎么写的。

下面开始正题:
源码准备等和Android.mk一样具体可以点击看这里:
https://blog.csdn.net/learnframework/article/details/124222138
也可以关注看看我的b站视频 https://www.bilibili.com/video/BV1TS4y1e7De/

下面我们其实只需要把原来的Android.mk替换成Android.bp具体Android.bp内容如下:

android_app 
    name: "LegacyEmptyApps",  //要编译生成apk名字,也就单编译模块时候 make LegacyEmptyApps
    srcs: ["app/src/main/java/**/*.java"],//scr路径
	resource_dirs: ["app/src/main/res"],//res路径
	additional_manifests: [ //和Android.mk一样会在根目录也有个AndroidManifest只不过他是个壳,这里这个才是真正的,二者会合并
        "app/src/main/AndroidManifest.xml",
    ],
    libs: ["framework"],//依赖的jar包
    platform_apis: true,//设置该标记后会使用sdk的hide的api來编译。编译的APK中使用了系统级API,必须设定该值。和Android.mk中的LOCAL_PRIVATE_PLATFORM_APIS的作用相同
     certificate: "platform",//代表签名


以上是关于预制到system/app下面开机却没有的主要内容,如果未能解决你的问题,请参考以下文章

Android Framework实战预制packages/apps下应用源码预制使用Android.bp方式

Android Framework实战预制packages/apps下应用源码预制使用Android.bp方式

Android Framework实战预制packages/apps下应用源码预制使用Android.bp方式

Android Framework实战预制packages/apps下应用源码预制使用Android.bp方式

我写了个sh脚本文件,如何配置才能实现Suse11系统开机时能自动执行该sh脚本。

如何不让mysql每次开机时自动启动