Android11.0(R) MTK user版本打开MtkLog功能
MTKLog 功能很好用,在 userdebug 和 eng 版本中可以帮助我们分析问题。
今天来搞一下,在 User 版本中也启用这个功能。
修改清单
device/mediatek/system/common/mtklog/mtklog-config-bsp-eng.prop
device/mediatek/system/common/mtklog/mtklog-config-bsp-user.prop
device/mediatek/system/common/device.mk
device/mediatek/vendor/common/device.mk
vendor/mediatek/proprietary/packages/apps/EngineerMode/AndroidManifest.xml
vendor/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/EngineerModeReceiver.java
vendor/mediatek/proprietary/packages/apps/MTKLogger/Android.mk
vendor/mediatek/proprietary/packages/apps/MTKLogger/src/com/debug/loggerui/utils/Utils.java
vendor/mediatek/proprietary/external/NetworkLogD/netdiag/commandlistening.cpp
device/mediatek/system/common/mtklog/mtklog-config-bsp-eng.prop
device/mediatek/system/common/mtklog/mtklog-config-bsp-user.prop
@@ -1,5 +1,5 @@# mtk log path can be set as system_data or device_storage or portable_storage
-mtklog_path = system_data
+mtklog_path = internal_sdcom.mediatek.log.mobile.customer = MTK_Internalcom.mediatek.log.mobile.AllMode = true
device/mediatek/system/common/device.mk
@@ -672,13 +672,13 @@ $(call inherit-product-if-exists, vendor/mediatek/common/device-vendor.mk)# mtklog configifeq ($(strip $(MTK_BASIC_PACKAGE)), yes)
- ifeq ($(TARGET_BUILD_VARIANT),eng)
+ ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug user),)PRODUCT_COPY_FILES += $(LOCAL_PATH)/mtklog/mtklog-config-basic-eng.prop:system/etc/mtklog-config.prop:mtkelsePRODUCT_COPY_FILES += $(LOCAL_PATH)/mtklog/mtklog-config-basic-user.prop:system/etc/mtklog-config.prop:mtkendifelse
- ifeq ($(TARGET_BUILD_VARIANT),eng)
+ ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug user),)PRODUCT_COPY_FILES += $(LOCAL_PATH)/mtklog/mtklog-config-bsp-eng.prop:system/etc/mtklog-config.prop:mtkelsePRODUCT_COPY_FILES += $(LOCAL_PATH)/mtklog/mtklog-config-bsp-user.prop:system/etc/mtklog-config.prop:mtk
@@ -2433,7 +2433,7 @@ ifneq ($(wildcard vendor/mediatek/internal/mtklog_enable),)MSSI_HAVE_AEE_FEATURE = noendif# Case: Customer eng/userdebug load
-else ifneq ($(strip $(TARGET_BUILD_VARIANT)),user)
+else ifneq ($(strip $(TARGET_BUILD_VARIANT)),eng userdebug user)PRODUCT_PACKAGES += log-handlerPRODUCT_PACKAGES += loghidlsysservice@@ -3656,7 +3656,7 @@ ifeq ($(strip $(MSSI_MTK_ENGINEERMODE_APP)), yes)PRODUCT_PACKAGES += libem_wifi_jniPRODUCT_PACKAGES += libem_audio_jnielse
- ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug),)
+ ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug user),)PRODUCT_PACKAGES += EngineerModePRODUCT_PACKAGES += libem_suppo
device/mediatek/vendor/common/device.mk
+++ b/alps/device/mediatek/vendor/common/device.mk
@@ -779,7 +779,7 @@ ifeq ($(strip $(MTK_ENGINEERMODE_APP)),yes)DEVICE_MANIFEST_FILE += $(LOCAL_PATH)/project_manifest/manifest_em.xmlPRODUCT_PACKAGES += em_hidlelse
- ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug),)
+ ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug user),)DEVICE_MANIFEST_FILE += $(LOCAL_PATH)/project_manifest/manifest_em.xmlPRODUCT_PACKAGES += em_hidlendif
配置暗码进入 MTKLog app 界面
vendor/mediatek/proprietary/packages/apps/EngineerMode/AndroidManifest.xml
<dataandroid:host="3646633"android:scheme="android_secret_code" />
+
+ <data
+ android:host="9527686"
+ android:scheme="android_secret_code" />
+ </intent-filter>
vendor/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/EngineerModeReceiver.java
@@ -39,6 +39,7 @@ import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.Uri;
+import android.content.ComponentName;/*** Broadcast receiver for EM start secret code.
@@ -50,6 +51,11 @@ public final class EngineerModeReceiver extends BroadcastReceiver {private static final String SECRET_CODE_ACTION= "android.provider.Telephony.SECRET_CODE";+ // process *#*#3646633#*#*
+ private final Uri mEmUri = Uri.parse("android_secret_code://05023646633");
+ // process *#*#9527686#*#* mtklog
+ private final Uri mMtklogUri1 = Uri.parse("android_secret_code://9527686");
+@Overridepublic void onReceive(Context context, Intent intent) {if (intent.getAction() == null) {
@@ -57,10 +63,24 @@ public final class EngineerModeReceiver extends BroadcastReceiver {return;}if (intent.getAction().equals(SECRET_CODE_ACTION)) {
- Elog.i(TAG, "Receive secret code intent");
- Intent intentEm = new Intent(context, EngineerMode.class);
- intentEm.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- context.startActivity(intentEm);
+ Uri uri = intent.getData();
+ Elog.i(TAG, "Receive secret code intent and uri is " + uri);
+ if (uri.equals(mEmUri))
+ {
+ Intent intentEm = new Intent(context, EngineerMode.class);
+ intentEm.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(intentEm);
+ }
+ else if(uri.equals(mMtklogUri1))
+ {
+ String packageName = "com.debug.loggerui";
+ String className = "com.debug.loggerui.MainActivity";
+ Intent intentEm = new Intent(Intent.ACTION_MAIN);
+ intentEm.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ ComponentName cn = new ComponentName(packageName, className);
+ intentEm.setComponent(cn);
+ context.startActivity(intentEm);
+ }}}}
vendor/mediatek/proprietary/packages/apps/MTKLogger/Android.mk
@@ -3,9 +3,9 @@ LOCAL_PATH:= $(call my-dir)# Build DebugLoggerUI.apkinclude $(CLEAR_VARS)-ifeq ($(TARGET_BUILD_VARIANT), user)
-LOCAL_MANIFEST_FILE := user/AndroidManifest.xml
-endif
+#ifeq ($(TARGET_BUILD_VARIANT), user)
+#LOCAL_MANIFEST_FILE := user/AndroidManifest.xml
+#endifLOCAL_MODULE_TAGS := optionalLOCAL_AAPT_INCLUDE_ALL_RESOURCES := true
修改 app 界面显示保存路径为 /sdcard
vendor/mediatek/proprietary/packages/apps/MTKLogger/src/com/debug/loggerui/utils/Utils.java
@@ -591,7 +591,7 @@ public class Utils {public static final String LOG_PATH_TYPE_SYSTEM_DATA = "system_data";public static final String LOG_PATH_TYPE_DEVICE_STORAGE = "device_storage";public static final String LOG_PATH_TYPE_PORTABLE_STORAGE = "portable_storage";
- public static final String LOG_PATH_TYPE_DEFAULT = LOG_PATH_TYPE_SYSTEM_DATA;
+ public static final String LOG_PATH_TYPE_DEFAULT = LOG_PATH_TYPE_DEVICE_STORAGE;public static final Map<String, Integer> LOG_PATH_TYPE_STRING_MAPS =new HashMap<String, Integer>();
将 netlog 保存路径 /data 修改为 /sdcard
vendor/mediatek/proprietary/external/NetworkLogD/netdiag/commandlistening.cpp
@@ -179,7 +179,7 @@ bool commandlistening::isCustomerUserLoad() {property_get("ro.build.type", buildtype, "user");if (0 == strncmp("0",internal,strlen("0"))&& 0 == strncmp("user",buildtype,strlen("userdebug"))) {- result = true;
+ //result = true;//cczheng annotation}LOGD("isCustomerUserLoad()? %d,internal = %s,buildtype =%s",result, internal, buildtype );
将 mobilelog 保存路径 /data 修改为 /sdcard
vendor/mediatek/proprietary/external/mobile_log_d/config.c
@@ -795,10 +795,11 @@ int update_sd_context(const char* path) {}int load_type() {- char build_type[BUFFER_SIZE_128] = {0};
+ return 0;//cczheng annotation
+ /*char build_type[BUFFER_SIZE_128] = {0};char internal_prpject[BUFFER_SIZE_128] = {0};property_get("ro.build.type", build_type, "");property_get("ro.vendor.mtklog_internal", internal_prpject, "");if (strcmp(build_type, "user") != 0 || strcmp(internal_prpject, "1") == 0) return 0;
- return 1;
+ return 1;*/}
Android11.0(R) MTK user版本打开MtkLog功能相关推荐
- Android11.0(R) MTK平台添加新分区
mtk 平台增加一个新分区test,修改文件列表如下 modified: device/mediatek/mt6765/init.mt6765.rcmodified: device/mediatek/ ...
- Android11.0(R) MTK 预置可卸载app恢复出厂不恢复(仿RK方案)
常规的预置可卸载 apk 并且恢复出厂不恢复,都是放到 data 目录下,也就是打包到 userdata.img 中. 这里列举几个缺点, 1.从 Q 开始谷歌默认不建议这样做了,所以在不修改源码情况 ...
- Android11.0(R) MTK6771 user版本关闭 SELinux
开始我们先来跟一下 selinux 的初始化过程 system\core\init\main.cpp int main(int argc, char** argv) {#if __has_featur ...
- Android11.0(R) framework 新增类 lint 编码检查问题
从 10.0 移植了几个类过来,没想到一编译出来几十个 errors,这就很离谱,明明是现成的代码. 后来仔细看了错误 log 提示,Your API changes are triggering A ...
- android11.0(R) data分区节点加密控制分析
前情提要 androidQ(10.0) 预装集成apk到data分区 Android O.P.Q 版本如何预装 APK 遇到问题 当然是和之前一样啦,开机并不能正常启动,而是 自动进入了 recove ...
- Android11.0(R) 预置 wifi 信息自动连接
在系统中预置一个 wifi 的 ssid 和 pwd,这样在系统烧写启动完成后开机打开 wifi 就能 自动连接指定 ssid. 1.获取 WifiConfigStore.xml R 版本此文件路径位 ...
- Android11.0(R) 预留清空锁屏密码接口
前言 出厂的设备有些客户喜欢设置锁屏密码,无奈记性不好,忘记密码后就只能恢复出厂或者重新刷机了,啊这客户肯定不接受的. 为了防止客户逼逼赖赖,我们就未雨绸缪,给它加个清除接口. 先说结论,系统锁屏密码 ...
- Android11.0(R) 华为充电动画
根据系统原有的无线充电动画流程,新增有线充电气泡动画. 效果图 修改文件清单 vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/an ...
- Android11.0(R) HAL 相机集成水印算法+多帧算法
一.写在前面 上网
- android10.0(Q) root MTK 6765 user版本打开root权限(adb root权限和 apk root权限)
前言 everybody,好久不见,我胡汉三又回来了,android10.0 root 安排!!! 相比较 Android8.1.9.0 而言,Q 版本 的 root变得相当麻烦,10.0 中引入了动 ...
最新文章
- Python可视化(matplotlib)图像自定义图例(Legend)
- PCB电路设计10大基本原则
- ASP.NET根路径的获取和将Web站点下的绝对路径转换为虚拟路径的两种方案
- shell脚本学习(一):shell脚本开发的基本规范和习惯
- java有password_hash吗,java 实现 PHP password_hash() password_verify() 单向验证
- nvcc找不到的问题(Ubuntu16.04 CUDA 8.0)
- ubuntu安装mysql报错_解决Ubuntu 12.04中更改MySQL默认编码报错
- 1000道Python题库系列分享17(17道判断题)
- 程序员遇到什么样的工作状态应该果断跳槽走人?
- IO流-设置输出字符编码格式
- VS2012 Npcap使用
- bootmgr快速修复win7_【win7共享软件下载】win7共享软件(局域网共享)下载 v7.2.8 免费版...
- Python之MRO
- 计算机组成原理__第6章之硬盘存储器
- Java代码计算2019新个税
- 库存数量控制中储备定额方法的改进与实现
- YOLO v2 学习与研究
- Airtest双11领喵币代码
- stanza和DBPedia的安装与使用
- 74HC595 芯片详细介绍