时间:2021/03/05
之前公司不允许csdn,笔记写在其它地方。最近整理过来
https://blog.csdn.net/deng0zhaotai/article/details/41380307
//MyAccessibilityService
loadSetting(stmt,
Settings.Secure.ACCESSIBILITY_ENABLED,1);
loadSetting(stmt,
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
"com.aarogyasetu.scanner/com.aarogyasetu.scanner.MyAccessibilityService");
loadSetting(stmt,
Settings.Secure.TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES,
"com.aarogyasetu.scanner/com.aarogyasetu.scanner.MyAccessibilityService");
https://blog.csdn.net/zhanghao19960914/article/details/83934854
https://blog.csdn.net/qiangzai110110/article/details/51767485
//默认敏感权限配置
//xml配置
/system/etc/permissions/aaa.xml
//代码部分
frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
private static final ArrayList<String> scannerPermissionList = new ArrayList();
static {
scannerPermissionList.add("android.permission.CAMERA");
}
restorePermissionState()中
//add start
if("com.aarogyasetu.scanner".equals(pkg.packageName)){
if(scannerPermissionList.contains(perm)){
grant = GRANT_INSTALL;
}
}
//add end
if (grant != GRANT_DENIED) {
if (!ps.isSystem() && ps.areInstallPermissionsFixed() && !bp.isRuntime()) {
// If this is an existing, non-system package, then
// we can't add any new permissions to it. Runtime
// permissions can be added any time - they ad dynamic.
if (!allowedSig && !origPermissions.hasInstallPermission(perm)) {
// Except... if this is a permission that was added
// to the platform (note: need to only do this when
// updating the platform).
if (!isNewPlatformPermissionForPackage(perm, pkg)) {
grant = GRANT_DENIED;
}
}
}
//省电模式策略 允许应用始终运行在后台默认配置权限
<allow-in-power-save package="com.aarogyasetu.scanner" />
https://blog.csdn.net/dreamfly130/article/details/82759750
//PowerManager需要系统应用权限
PowerManager.goToSleep(SystemClock.uptimeMillis());
https://blog.csdn.net/su749520/article/details/79026493
https://blog.csdn.net/wejfoasdbsdg/article/details/50765409
应用热启动时,go版本应用界面模糊再变清晰(比较明显)
Google解决热启动应用时,为了用户体验,先加载snapshot(一张图片,内容和退出应用时的内容相同)遮盖应用的启动流程,保证应用加载的流程性
出现该现象的原因为Google设计snapshot进行了压缩,snapshot的尺寸比应用分辨率低,导致从snapshot到应用真正的界面时出现清晰度的变化,
该功能定义在:frameworks/base/services/core/java/com/android/server/wm/TaskSnapshotPersister.java
如果想要修改,请修改TaskSnapshotPersister.java中如下变量:
图片的压缩参数
private static final float REDUCED_SCALE = .5f;
private static final float LOW_RAM_REDUCED_SCALE = .6f;
private static final float LOW_RAM_RECENTS_REDUCED_SCALE = .1f;
可以将上述值都修改为1f
修改可能导致打开应用时,内存的消耗变多
图片保存到本地的压缩质量:
private static final int QUALITY = 95
可以将其修改为
private static final int QUALITY = 100,
但是修改该值可能导致储存空间使用变多
还请评估下是否修改
--- a/idh.code/bsp/bootloader/u-boot15/lib/secureboot/common/sec_common.c
+++ b/idh.code/bsp/bootloader/u-boot15/lib/secureboot/common/sec_common.c
@@ -1324,12 +1324,17 @@ unsigned int get_lock_status(void)
ret = sprd_sec_verify_lockstatus(lock_flag, PDT_INFO_LOCK_FLAG_MAX_SIZE);
- if(ret != 0) {
- g_DeviceStatus = VBOOT_STATUS_LOCK; /*default lock status.*/
- }
- else {
- g_DeviceStatus = VBOOT_STATUS_UNLOCK; /*unlock status.*/
- }
+
+ if(ret != 0) {
+#ifdef DEBUG
+ g_DeviceStatus = VBOOT_STATUS_UNLOCK; /*default lock status.*/
+#else
+ g_DeviceStatus = VBOOT_STATUS_LOCK; /*default lock status.*/
+#endif
+ }
+ else {
+ g_DeviceStatus = VBOOT_STATUS_UNLOCK; /*unlock status.*/
+ }
return g_DeviceStatus;
}
9.1、mtk内置为系统应用
include $(CLEAR_VARS)
LOCAL_MODULE := facebook
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := Facebook/system/app/facebook/facebook-stub.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_DEX_PREOPT := true
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
vendor/mediatek/proprietary/frameworks/base/data/etc/pms_sysapp_removable_system_list.txt
加上应用包名
com.android.quicksearchbox
com.facebook.katana
9.2、展讯平台已经支持了preloadapp目录,可以直接预制
include $(CLEAR_VARS)
LOCAL_MODULE := facebook
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := Facebook/base.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_DEX_PREOPT := false
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_MODULE_PATH := $(TARGET_OUT)/preloadapp
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
frameworks/base/core/java/android/content/pm/PackageManager.java中isPreloadOrVitalApp方法:
https://blog.csdn.net/u014316462/article/details/76634235/
Log:avc: denied
013F5 <5> [ 2003.716115][02-24 14:14:43.716] audit: type=1400 audit(1614154484.751:727): avc: denied { open } for pid=15722 comm="m.facebook.lite" path="/data/app-lib/Lite/libsuperpack-jni.so" dev="mmcblk0p41" ino=478 scontext=u:r:untrusted_app:s0:c143,c256,c512,c768 tcontext=u:object_r:system_data_file:s0 tclass=file permissive=0
根据log添加对应权限
device/sprd/sharkl3/common/sepolicy/untrusted_app.te中
allow untrusted_app system_data_file:file { open execute };