Firefly开源社区

标题: “预安装自定义APP”失败了 [打印本页]

作者: 欢乐可乐    时间: 2021-5-20 10:20
标题: “预安装自定义APP”失败了
第一种:根据 aio-3399c 的 wiki,是在 vendor/firefly/apps/ 目录下创建文件夹,在该文件夹放入 .apk(就只有.apk),然后在该目录下编写 Android.mk 文件。 ==> 失败

第二种:在 preinstall 或 preinstall_del 或 preinstall_del_forever 目录下放入 .apk 文件,但问题是,device/rockchip/rk3399/rk3399_firefly_aioc/ 目录下并没有对应的三个目录及其对应的.mk 文件。==> 失败

第三种:将 .apk 放在 adb 文件夹里,使用 adb install 安装。  ==> 成功

请问下,如果要使用 第一种 和 第二种方法,我是哪些步骤存在不足,或者是漏掉了哪些步骤?

PS:编译的话,由于是改动 Android 部分固件,所以就只编译了 Android 部分,编译命令如下:
source ./FFTools/build.sh
lunch rk3399_firefly_aioc-userdebug
make installclean
make -j4
./mkimage.sh
./FFTools/mkupdate/mkupdate.sh -l rk3399_firefly_aioc-userdebug
作者: 欢乐可乐    时间: 2021-5-20 10:47
方法二以解决:在 device/rockchip/rk3399/rk3399_firefly_aioc/ 目录下创建 preinstall 或 preinstall_del 或 preinstall_del_forever 目录,然后放入 .apk 文件,再次编译就OK了。

但是 方法一 我是弄不明白。。。。
作者: luwy    时间: 2021-5-20 14:58
有在vendor/firefly/apps/apps.mk添加你要预安装自定义APP的文件夹吗
作者: 欢乐可乐    时间: 2021-5-20 15:39
luwy 发表于 2021-5-20 14:58
有在vendor/firefly/apps/apps.mk添加你要预安装自定义APP的文件夹吗

有的,在 PRODUCT_PACKAGES 里面加,不过我的文件夹名全是小写的,而且在编译时也提示 include 进去了,但是编译后在该文件夹里面还是只有 .apk 文件和自己加的 Android.mk 文件, Android.mk 文件内容是我参考 wiki 的
作者: luwy    时间: 2021-5-20 16:01
看下out/target/product/rk3399_firefly_aioc/system/priv-app/或者out/target/product/rk3399_firefly_aioc/system/app/目录下是否有对应的app文件夹生成
作者: 欢乐可乐    时间: 2021-5-21 15:13
luwy 发表于 2021-5-20 16:01
看下out/target/product/rk3399_firefly_aioc/system/priv-app/或者out/target/product/rk3399_firefly_aio ...

你好,我试过了,无论是 app/ 还是 priv-app/ 目录下,都没有对于的 app 文件夹生成

我这里是修改后,重新单独编译 Android 固件的,编译命令在上面

我的步骤是这样的:
(1)在网上下载一个谷歌拼音的apk
(2)在 vendor/firefly/apps/ 目录下创建 GoogleInput 目录
(3)修改 vendor/firefly/apps/ 目录下的 apps.mk 文件
         PRODUCT_PACKAGES += \
                     FDeviceTest \
                     GoogleInput
(4)在 vendor/firefly/apps/GoogleInput/ 目录下放入 apk 文件,然后创建 Android.mk 文件,其内容如下:
  1. LOCAL_PATH := $(call my-dir)
  2. include $(CLEAR_VARS)
  3. LOCAL_MODULE := GoogleInput
  4. LOCAL_MODULE_CLASS := APPS
  5. LOCAL_MODULE_TAGS := optional
  6. LOCAL_BUILT_MODULE_STEM := package.apk
  7. LOCAL_DEX_PREOPT := nostripping
  8. LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
  9. COMMON_ANDROID_PACKAGE_SUFFIX :=.apk
  10. LOCAL_PRIVILEGED_MODULE := true
  11. LOCAL_CERTIFICATE := PRESIGNED
  12. LOCAL_OVERRIDES_PACKAGES := GoogleInput
  13. LOCAL_SRC_FILES := $(LOCAL_MODULE).apk

  14. JNI_LIBS :=
  15. LOCAL_PREBUILT_JNI_LIBS := $(subst $(LOCAL_PATH),,$(JNI_LIBS))

  16. include $(BUILD_PREBUILT)
复制代码


作者: luwy    时间: 2021-5-24 09:41
请确认apk文件名与Android.mk中LOCAL_MODULE名是否一致,你还可以试试下面的Android.mk
  1. LOCAL_PATH := $(call my-dir)
  2. include $(CLEAR_VARS)
  3. LOCAL_MODULE := GoogleInput
  4. LOCAL_MODULE_CLASS := APPS
  5. LOCAL_MODULE_TAGS := optional
  6. LOCAL_BUILT_MODULE_STEM := package.apk
  7. LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
  8. #LOCAL_PRIVILEGED_MODULE :=
  9. LOCAL_CERTIFICATE := platform
  10. #LOCAL_OVERRIDES_PACKAGES :=
  11. LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
  12. #LOCAL_REQUIRED_MODULES :=
  13. #LOCAL_PREBUILT_JNI_LIBS :=
  14. include $(BUILD_PREBUILT)
复制代码

作者: 欢乐可乐    时间: 2021-5-24 10:34
luwy 发表于 2021-5-24 09:41
请确认apk文件名与Android.mk中LOCAL_MODULE名是否一致,你还可以试试下面的Android.mk

使用你提供的Android.mk,编译后就可以了,在out/target/product/rk3399_firefly_aioc/system/app/目录下看到了,谢谢哈~




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1