问题如上 rebase到M后,eng版本可以用,userdebug起不来 遇到这种情况除了把设备想办法串口之外。真是没什么办法了,网络上找了很多办法根本解决不了,一直抓不到启动日志
设备卡在bootloader那个地方。第二屏的开机动画都到不了,因为eng版本可以用,分析了eng和userdebug的生产目录的root 发现default.prop有个ro.secure 不一样 这个时候就想个偷懒办法,暴力的设置下,编译出的版本抓og
build/core/main.mk
## user/userdebug ##
user_variant := $(filter user userdebug,$(TARGET_BUILD_VARIANT))
enable_target_debugging := true
tags_to_install :=
ifneq (,$(user_variant))
# Target is secure in user builds.
ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=1
ifeq ($(user_variant),user)
ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=1
endif
else
ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=0
看到了吧 问题就在那个设置为1 强制修改为 0就可以了,其实就让走最下面那个else分支和eng一样了现在
这里有个前提就是adb 服务要在enable起来,我看我们这边的代码是这样配置
USB_CONFIG := mtp
ifeq ($(TARGET_BUILD_VARIANT),user)
# Enable Secure Debugging
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.adb.secure=1
ifeq ($(BUILD_FOR_CTS_AUTOMATION),true)
# Build for automated CTS
USB_CONFIG := $(USB_CONFIG),adb
PRODUCT_COPY_FILES += device/xx/common/usb-gadget/adb_keys:root/adb_keys
endif #BUILD_FOR_CTS_AUTOMATION == true
endif #TARGET_BUILD_VARIANT == user
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += persist.sys.usb.config=$(USB_CONFIG)
# Add Intel adb keys for userdebug/eng builds
ifneq ($(TARGET_BUILD_VARIANT),user)
PRODUCT_COPY_FILES += device/xx/common/usb-gadget/adb_keys:root/adb_keys
endif
经过上面的配置,adb logcat终于可以用了,最后从抓到的kernel log找到了问题的原因
[ 8.197030] EXT4-fs (mmcblk0p9): VFS: Can't find ext4 filesystem
[ 8.203887] fs_mgr: __mount(source=/dev/block/by-name/android_data,target=/data,type=ext4)=-1
[ 8.204718] fs_mgr: Failed to mount an un-encryptable or wiped partition on/dev/block/by-name/android_data at /data options: discard,noauto_da_alloc,errors=panic error: Invalid argument
原来是文件系统在挂载的时候出了问题,