在A12上预装应用,出现了一个异常。在此记录
问题描述:
在A12上预装应用按照A13的预装方案报错,mk文件如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := Tideen_PTT
LOCAL_MODULE_STEM := Tideen_PTT_V5.49_20250730_JG.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_PATH := $(TARGET_OUT)/vital-app
LOCAL_SRC_FILES := Tideen_PTT_V5.49_20250730_JG.apk
#LOCAL_PRIVILEGED_MODULE := true
LOCAL_ENFORCE_USES_LIBRARIES := false
#LOCAL_PREBUILT_JNI_LIBS := $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/lib/arm64-v8a/*.so))
include $(BUILD_PREBUILT)
#==================================================
# Install default-app default-permisison file
#==================================================
include $(CLEAR_VARS)
LOCAL_MODULE := default_permissions_tiddenptt.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/default-permissions
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
#==================================================
# Install priv-app permisison file
#==================================================
include $(CLEAR_VARS)
LOCAL_MODULE:=privapp-permissions-tiddenptt.xml
LOCAL_MODULE_TAGS:=optional
LOCAL_MODULE_CLASS:=ETC
LOCAL_MODULE_PATH:=${TARGET_OUT_ETC}/permissions
LOCAL_SRC_FILES:=${LOCAL_MODULE}
include ${BUILD_PREBUILT}
结果预装成功,打开应用报错,日志如下:
2025-08-14 15:37:53.633 BufferQueueProducer com.android.launcher3 E [ViewRootImpl[QuickstepLauncher]#3(BLAST Consumer)3](id:76000000006,api:0,p:-1,c:1888) disconnect: not connected (req=1)
2025-08-14 15:37:53.643 LoadedApk tideen.talkback E Unable to instantiate appComponentFactory
java.lang.ClassNotFoundException: Didn't find class "androidx.core.app.CoreComponentFactory" on path: DexPathList[[zip file "/system/app/Tideen_PTT/Tideen_PTT.apk"],nativeLibraryDirectories=[/system/app/Tideen_PTT/lib/arm, /system/app/Tideen_PTT/Tideen_PTT.apk!/lib/armeabi-v7a, /system/lib, /system_ext/lib, /system/lib, /system_ext/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:218)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.LoadedApk.createAppFactory(LoadedApk.java:268)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:985)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:1072)
at android.app.LoadedApk.getResources(LoadedApk.java:1320)
at android.app.ContextImpl.createAppContext(ContextImpl.java:3024)
at android.app.ContextImpl.createAppContext(ContextImpl.java:3016)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6708)
at android.app.ActivityThread.access$1500(ActivityThread.java:268)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2095)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7941)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:553)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1001)
2025-08-14 15:37:53.698 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:53.716 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:53.777 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:54.006 libc tideen.talkback A Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xc in tid 4523 (tideen.talkback), pid 4523 (tideen.talkback)
2025-08-14 15:37:54.754 DEBUG crash_dump32 A *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2025-08-14 15:37:54.755 DEBUG crash_dump32 A Native Crash TIME: 854521
2025-08-14 15:37:54.755 DEBUG crash_dump32 A *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2025-08-14 15:37:54.756 DEBUG crash_dump32 A Build fingerprint: 'UNISOC/sl8541e_1h10_go_32b/sl8541e_1h10_32b:12/SP1A.210812.016/32414:userdebug/test-keys'
2025-08-14 15:37:54.756 DEBUG crash_dump32 A Revision: '0'
2025-08-14 15:37:54.757 DEBUG crash_dump32 A ABI: 'arm'
2025-08-14 15:37:54.757 DEBUG crash_dump32 A Timestamp: 2025-08-14 15:37:54.163977028+0800
2025-08-14 15:37:54.758 DEBUG crash_dump32 A Process uptime: 1s
2025-08-14 15:37:54.758 DEBUG crash_dump32 A Cmdline: tideen.talkback
2025-08-14 15:37:54.759 DEBUG crash_dump32 A pid: 4523, tid: 4523, name: tideen.talkback >>> tideen.talkback <<<
2025-08-14 15:37:54.759 DEBUG crash_dump32 A uid: 10062
2025-08-14 15:37:54.759 DEBUG crash_dump32 A signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xc
2025-08-14 15:37:54.760 DEBUG crash_dump32 A Cause: null pointer dereference
2025-08-14 15:37:54.760 DEBUG crash_dump32 A r0 00000000 r1 ae68b9a0 r2 beb5acd8 r3 37a85ae2
2025-08-14 15:37:54.761 DEBUG crash_dump32 A r4 b10856e0 r5 beb5acd8 r6 ae68b9a0 r7 870d51f7
2025-08-14 15:37:54.761 DEBUG crash_dump32 A r8 beb5acfc r9 00000095 r10 acec52cc r11 beb5ad5c
2025-08-14 15:37:54.762 DEBUG crash_dump32 A ip 00000065 sp beb5abd0 lr 00000063 pc 870adb9e
2025-08-14 15:37:54.762 DEBUG crash_dump32 A backtrace:
2025-08-14 15:37:54.762 DEBUG crash_dump32 A #00 pc 000aeb9e [anon:.bss]
2025-08-14 15:37:54.887 tombstoned tombstoned E Tombstone written to: tombstone_02
2025-08-14 15:37:54.917 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:54.962 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:54.975 system_server system_process E Shared attribute region not available to be mapped
2025-08-14 15:37:55.035 NativeTombstoneManager system_process E Tombstone has invalid selinux label (u:r:platform_app:s0:c512,c768??), ignoring
2025-08-14 15:37:55.472 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:55.505 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:55.516 droid.launcher com.android.launcher3 E Shared attribute region not available to be mapped
2025-08-14 15:37:55.523 BufferQueueProducer com.android.systemui E [ViewRootImpl[talkback]#5(BLAST Consumer)5](id:5fb00000005,api:0,p:-1,c:1531) disconnect: not connected (req=1)
2025-08-14 15:37:55.535 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:55.538 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:55.554 droid.launcher com.android.launcher3 E Shared attribute region not available to be mapped
2025-08-14 15:37:55.567 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:55.569 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:55.589 droid.launcher com.android.launcher3 E Shared attribute region not available to be mapped
2025-08-14 15:37:55.599 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:55.602 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:55.617 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:55.632 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:55.665 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:55.698 surfaceflinger surfaceflinger E Shared attribute region not available to be mapped
2025-08-14 15:37:55.891 SLOGCP slogmodem E data_rate_stat: cp_5mode rate 187369.733333
2025-08-14 15:37:55.968 SLOGCP slogmodem E data_rate_stat: cp_wcn rate 0.000000
2025-08-14 15:37:55.969 SLOGCP slogmodem E data_rate_stat: cp_gnss rate 0.000000
mk文件修改如下:
LOCAL_PATH:= $(call my-dir)
#$(shell cp -rf $(LOCAL_PATH)/libs/armeabi/* $(TARGET_OUT)/lib)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := Tideen_PTT
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := PRESIGNED
#LOCAL_MODULE_PATH := $(TARGET_OUT)/app
LOCAL_SRC_FILES := Tideen_PTT_V5.49_20250730_JG.apk
include $(BUILD_PREBUILT)
删除LOCAL_MODULE_PATH 声明。
权限在代码中的处理
权限没有使用权限文件,在Framework/base下声明,操作如下:
声明应用权限
commit dd5ea868a3eff8b2070bbe73b417bf4ba89e5e91
Author: lijp <lijp@flyscale.cn>
Date: Thu Aug 14 16:09:55 2025 +0800
添加应用权限
Change-Id: I3bf4c7c4d2c088ffc33e3147e2eabcaecb5b7ad2
diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml
index 648de283ac0a..b5586549e1dd 100644
--- a/data/etc/privapp-permissions-platform.xml
+++ b/data/etc/privapp-permissions-platform.xml
@@ -561,7 +561,59 @@ applications that come with the platform
<privapp-permissions package="com.android.calllogbackup">
<permission name="com.android.voicemail.permission.READ_VOICEMAIL"/>
</privapp-permissions>
-
+ <privapp-permissions package="tideen.talkback">
+
+ <permission name="android.permission.ACCESS_NETWORK_STATE"/>
+ <permission name="android.permission.ACCESS_WIFI_STATE"/>
+ <permission name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
+ <permission name="android.permission.RECORD_AUDIO"/>
+ <permission name="android.permission.RECORD_VIDEO"/>
+ <permission name="android.hardware.usb.host"/>
+ <permission name="android.permission.MOUNT_FORMAT_FILESYSTEMS"/>
+ <permission name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+ <permission name="android.permission.WRITE_MEDIA_STORAGE"/>
+ <permission name="android.permission.READ_EXTERNAL_STORAGE"/>
+ <permission name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
+ <permission name="android.permission.INTERNET"/>
+ <permission name="android.permission.RECEIVE_BOOT_COMPLETED"/>
+ <permission name="android.permission.CHANGE_CONFIGURATION"/>
+ <permission name="android.permission.FLASHLIGHT"/>
+ <permission name="android.permission.VIBRATE"/>
+ <permission name="android.permission.ACCESS_COARSE_LOCATION"/>
+ <permission name="android.permission.QUERY_GPS_LOCATION_PROVIDER"/>
+ <permission name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
+ <permission name="android.permission.DISABLE_KEYGUARD"/>
+ <permission name="android.permission.ACCESS_FINE_LOCATION"/>
+ <permission name="com.android.launcher.permission.READ_SETTINGS"/>
+ <permission name="android.permission.WAKE_LOCK"/>
+ <permission name="android.permission.GET_TASKS"/>
+ <permission name="android.permission.READ_PHONE_STATE"/>
+ <permission name="android.permission.PROCESS_OUTGOING_CALLS"/>
+ <permission name="android.permission.READ_LOGS"/>
+ <permission name="android.permission.READ_SETTINGS"/>
+ <permission name="android.permission.WRITE_SETTINGS"/>
+ <permission name="android.permission.CAMERA"/>
+ <permission name="android.permission.EXPAND_STATUS_BAR"/>
+ <permission name="android.permission.RESTART_PACKAGES"/>
+ <permission name="android.permission.READ_CALL_LOG"/>
+ <permission name="android.permission.READ_SMS"/>
+ <permission name="android.permission.CALL_PHONE"/>
+ <permission name="android.permission.SEND_SMS"/>
+ <permission name="android.permission.RECEIVE_SMS"/>
+ <permission name="android.permission.REORDER_TASKS"/>
+ <permission name="android.permission.SYSTEM_ALERT_WINDOW"/>
+ <permission name="android.permission.MODIFY_AUDIO_SETTINGS"/>
+ <permission name="android.permission.NFC"/>
+ <permission name="android.permission.BLUETOOTH"/>
+ <permission name="android.permission.BLUETOOTH_ADMIN"/>
+ <permission name="android.permission.KILL_BACKGROUND_PROCESSES"/>
+ <permission name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
+ <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
+ <permission name="android.permission.REQUEST_INSTALL_PACKAGES"/>
+ <permission name="android.permission.FOREGROUND_SERVICE"/>
+ <permission name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
+ <permission name="android.permission.CHANGE_WIFI_STATE"/>
+ </privapp-permissions>
<!-- UNISOC: For SubsidyLock Feature @{ -->
<privapp-permissions package="com.rjio.slc">
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
授权默认权限
Date: Thu Aug 14 16:46:31 2025 +0800
设置默认权限
Change-Id: I75de88afb5cdd8fd98e49689bc89b487ddb0e85a
diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/andro
id/server/pm/permission/DefaultPermissionGrantPolicy.java
index 8dde45f166bf..cdf996aad6dd 100755
--- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
+++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
@@ -580,6 +580,14 @@ final class DefaultPermissionGrantPolicy {
PHONE_PERMISSIONS, CONTACTS_PERMISSIONS, STORAGE_PERMISSIONS);
}
+ PackageInfo uni = getPackageInfo("tideen.talkback");
+ if (uni != null && doesPackageSupportRuntimePermissions(uni)) {
+ grantPermissionsToPackage(
+ uni, userId, false, true, true,
+ PHONE_PERMISSIONS, CONTACTS_PERMISSIONS, STORAGE_PERMISSIONS,
+ ALWAYS_LOCATION_PERMISSIONS,MICROPHONE_PERMISSIONS,CAMERA_PERMISSIONS);
+ }
+
// Installer
grantSystemFixedPermissionsToSystemPackage(pm,
ArrayUtils.firstOrNull(getKnownPackages(
以上~