android的2.3.7 rom修改调试与logcat看到的出错信息的可能原因与解决(补充中...)
来源:互联网 发布:红鼎位面商人知轩 编辑:程序博客网 时间:2024/04/29 22:46
logcat 看到错误
I//system/xbin/run-parts( 1205): sh: applet not found 是把sh中的#!/system/xbin/sh写法改成#!/system/bin/sh,虽然ls到它,但是使用which sh命令得到的才是正确的路径.否则就会出现这个提示.
---------------------
/etc/init.d/Androm: line 39: echo: write error: Invalid argument
/etc/init.d/Androm: line 42: echo: write error: Invalid argument
内核不支持某些参数;
二个值之间分隔符是(空格),却用了(,);
解决方案,直接在网上查看要写入值的这个路径的的值允许什么,或是cat一下,出来看 一下默认值,就可以判定当前的内核是否支持,使用它支持的值即可.
也可以直接在adb shell下面,运行类下面命令来测试
echo "smartassV2" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor;
-------------------
如在init.d/xxx中安装apk,会出现以下提示,意思就是classpath没有指定
D/AndroidRuntime( 1637): D/AndroidRuntime( 1637): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<D/AndroidRuntime( 1637): CheckJNI is OFFD/dalvikvm( 1637): creating instr width tableE/dalvikvm( 1637): ERROR: must specify non-'.' bootclasspathW/dalvikvm( 1637): JNI_CreateJavaVM failedE/AndroidRuntime( 1637): JNI_CreateJavaVM failedI/boot ( 1638): 在 /system/etc/init.d/installApks:/sdcard/apks/com.avast.android.mobilesecurity.apk installed TERM=linuxI/boot ( 1638): ANDROID_PROPERTY_WORKSPACE=8,32768I/boot ( 1638): PATH=/sbin:/system/sbin:/system/bin:/system/xbinI/boot ( 1638): PWD=/I/boot ( 1638): HOME=/I/boot ( 1638): SHLVL=2I/boot ( 1638): _=/system/xbin/env
如调用libtery.bsh中的方法,,打印env时,会没有cp信息的,所以,目前我的解决方法是在里面设定.
虽然在init.rc中看到已经设定了,且在adb shell中也看到env存在,
但是不清楚为什么在init.d阶段却没有,怀疑在init.rc之前处理的?
做以下处理后,就可以看到可以正常的使用批量安装了
: ' ========================================================= function name: installApks parameters: $1 - "-r" search all sub directories for apks, or... path to directory $2 - path to directory (if recursize) returns: void description: Installs apks to device using package manager============================================================= 'function installApks(){ RECURSIZE=0 case $1 in -r) RECURSIZE=1 shift; ;; esac APKS_DIR=${1:-/mnt/sdcard/} declare -a APKS if busybox [ -d $APKS_DIR ]; then if busybox [ $RECURSIZE -eq 1 ]; then APKS=(` busybox find $APKS_DIR -type f -name *.apk -print `); else APKS=(` ls $APKS_DIR/*.apk `); fi # 环境不存在,需要运行时的java环境出错,不清楚为什么环境还没好,临时解决方案是设定 export BOOTCLASSPATH=/system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar log -p i -t boot "在 $0:`env`" for apk in ${APKS[*]}; do log -p i -t boot "在 $0:$apk installed `pm install -s -r $apk` " done fi}
-------------------
卡在第一屏,
有时修改etc/liberty.bsh中的东西,或是init.d中东西,出错导致init挂掉,而不再加载其它东西.
这时logcat还没有出来,所以,看不到任何信息,
目前还不太清楚使用什么方式得到init加载的进度与详情.
如上面的export bootclasspth放的位置不对,就会导致init卡住.
经过研究init.rc语法,发现
/etc/init.d的东西是通过 在init.rc中的写exec /system/bin/sysinit来执行的.
且发现此此进程,在adb shell中使用相同的语法来运行时,环境跟adb shell是一样的.
但是由init.rc发起的,却不是,
怀疑export只影响shell?init发起的不是?在init.rc中没有找到其它语法.只有一个exec.
但是听说exec是block进程直到完成,如果我在init.d里面用到while+sleep之类的思路,就是会卡住,且也会卡在第一屏.
这是非常的不好的.虽然在考虑上,可能需要处理完init.d的文件再进其它进程,但是我看了一下我的init.d,并不需要这个考虑.
于是修改init.rc中的这块的调用成服务形式(经测试非block,是否会运行了不退出就不清楚,目前exec被block住,只改成service就进入桌面说明这点,但是是否init完就exit,得看ps进程才懂.)
修改方式,发现非常的好用.不block呢.
# 运行/etc/init.d中文件,这些文件的环境是独立的,并没有继承这里的环境# exec /system/bin/sysinit ,这种方式会block 进程,换种方式运行service sysinitQidizi /system/bin/sh /system/bin/sysinit#只运行一次oneshot user root
卡屏,且adbd还没有起来无法logcat查看时,
可以进入recovery中,mount -a,把所有的分区加载,然后使用
"%adb%" shell dumpstate > "%temp%\androiddumpstate.txt"
explorer "%temp%\androiddumpstate.txt"
读取所有的log
----------------
关于字体.
经过测试,
/system/fonts/Arial.ttf是系统正常启动时需要的字体,
它使用的引擎就是skia,下面的错误信息中,后面三个字体并不重要.没了,并不会引起skia出错,也就是不会出现debug这节
但是如果这个字体没了,就直接卡在第一屏动画上了,
且可以从dumpstate中看到如下的信息,
尝试发现它可以通过ln 别的字体成同名(大于3m,如直接使用中文那个字体)也没有问题,也能启动.
04-10 03:35:28.182 D/skia ( 1300): ---- failed to open </system/fonts/Arial.ttf> as a font04-10 03:35:28.182 D/skia ( 1300): ---- failed to open </system/fonts/Arial-Bold.ttf> as a font04-10 03:35:28.182 D/skia ( 1300): ---- failed to open </system/fonts/Arial-Italic.ttf> as a font04-10 03:35:28.182 D/skia ( 1300): ---- failed to open </system/fonts/Arial-BoldItalic.ttf> as a font04-10 03:35:28.294 I/DEBUG ( 1207): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***04-10 03:35:28.294 I/DEBUG ( 1207): Build fingerprint: 'Android/libra_passion/passion:2.3.7/MIUI/12.12.12:userdebug/test-keys'04-10 03:35:28.294 I/DEBUG ( 1207): pid: 1300, tid: 1300 >>> zygote <<<04-10 03:35:28.294 I/DEBUG ( 1207): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000000404-10 03:35:28.294 I/DEBUG ( 1207): r0 7ef05384 r1 000d7788 r2 00000078 r3 0000000004-10 03:35:28.294 I/DEBUG ( 1207): r4 00089fe0 r5 00089fe0 r6 6b223e74 r7 6b21f1dc04-10 03:35:28.294 I/DEBUG ( 1207): r8 6b223e90 r9 6b2152b4 10 00089ff4 fp 0008b59804-10 03:35:28.294 I/DEBUG ( 1207): ip 6fd475cc sp 7ef05348 lr 6b13291c pc 6b14c6ec cpsr 6000001004-10 03:35:28.294 I/DEBUG ( 1207): d0 643a64696f72646e d1 647265676775626504-10 03:35:28.294 I/DEBUG ( 1207): d2 4600200073006e6b d3 62006c006c00612e04-10 03:35:28.294 I/DEBUG ( 1207): d4 0029010800280108 d5 00300410002c041004-10 03:35:28.294 I/DEBUG ( 1207): d6 0038041000340410 d7 003d0108003c010804-10 03:35:28.294 I/DEBUG ( 1207): d8 0000000000000000 d9 000000000000000004-10 03:35:28.294 I/DEBUG ( 1207): d10 0000000000000000 d11 000000000000000004-10 03:35:28.294 I/DEBUG ( 1207): d12 0000000000000000 d13 000000000000000004-10 03:35:28.294 I/DEBUG ( 1207): d14 0000000000000000 d15 000000000000000004-10 03:35:28.294 I/DEBUG ( 1207): d16 00016f382cc2fe28 d17 3fe999999999999a04-10 03:35:28.294 I/DEBUG ( 1207): d18 0000000000000000 d19 000000000000000004-10 03:35:28.294 I/DEBUG ( 1207): d20 0000000000000000 d21 000000000000000004-10 03:35:28.294 I/DEBUG ( 1207): d22 0000000000000000 d23 000000000000000004-10 03:35:28.294 I/DEBUG ( 1207): d24 0000000000000000 d25 000000000000000004-10 03:35:28.294 I/DEBUG ( 1207): d26 0000000000000000 d27 000000000000000004-10 03:35:28.294 I/DEBUG ( 1207): d28 0000000000000000 d29 000000000000000004-10 03:35:28.294 I/DEBUG ( 1207): d30 0000000000000000 d31 000000000000000004-10 03:35:28.294 I/DEBUG ( 1207): scr 8000001004-10 03:35:28.294 I/DEBUG ( 1207): 04-10 03:35:28.372 I/DEBUG ( 1207): #00 pc 0004c6ec /system/lib/libskia.so04-10 03:35:28.372 I/DEBUG ( 1207): #01 pc 0004c8a8 /system/lib/libskia.so (_ZN10SkFontHost14CreateTypefaceEPK10SkTypefacePKcNS0_5StyleE)
如果只保留上面那个字体,去掉其它,
会卡在第二屏动画上.且每屏动画不重复播放.
提示少掉的字体如下,并没有提及中文
经过测试,
第二屏到桌面需要二个字体
Clockopia.ttf
DroidSans-Bold.ttf
缺少其中一个都会卡在第二屏动画进不去,第二屏动画一直重复播放.
04-10 04:13:51.422 D/skia ( 2416): ---- failed to open </system/fonts/Arial-Bold.ttf> as a font04-10 04:13:51.422 D/skia ( 2416): ---- failed to open </system/fonts/Arial-Italic.ttf> as a font04-10 04:13:51.422 D/skia ( 2416): ---- failed to open </system/fonts/Arial-BoldItalic.ttf> as a font04-10 04:13:51.422 D/skia ( 2416): ---- failed to open </system/fonts/DroidSerif-Regular.ttf> as a font04-10 04:13:51.422 D/skia ( 2416): ---- failed to open </system/fonts/DroidSerif-Bold.ttf> as a font04-10 04:13:51.422 D/skia ( 2416): ---- failed to open </system/fonts/DroidSerif-Italic.ttf> as a font04-10 04:13:51.422 D/skia ( 2416): ---- failed to open </system/fonts/DroidSerif-BoldItalic.ttf> as a font04-10 04:13:51.422 D/skia ( 2416): ---- failed to open </system/fonts/DroidSansMono.ttf> as a font
- android的2.3.7 rom修改调试与logcat看到的出错信息的可能原因与解决(补充中...)
- android中setVisibility方法无效的可能原因与解决办法
- [Android 调试] LogCat中不输出任何的信息
- Android Studio 中 LogCat 查看指定应用的调试信息
- android logcat的调试
- 简单易懂的Android ROM定制与修改教程
- Android中记录与调试——Logcat和Debug的使用
- Android中记录与调试——Logcat和Debug的使用
- Android中记录与调试——Logcat和Debug的使用
- android 2.3.7 miui rom的修改
- 解决logcat不能打印调试信息的问题
- android 解决真机在logcat中输出调试信息
- explorer出错的几种可能原因
- html:errors出错的可能原因
- openproj不能修改日期的原因分析与解决
- 解决AndroidStudio logcat 信息中包名为?号的问题
- 解决某些Rom中EditText无法修改光标的问题
- Android ROM的制作与烧录
- 怎样可以删除多余的桌面右键选项
- codec engine代码阅读七---codecs中的xDM,XDAIS函数解析
- android 联系人 --- 读取usim卡的邮箱
- js常用知识点
- Apache之AllowOverride参数详解
- android的2.3.7 rom修改调试与logcat看到的出错信息的可能原因与解决(补充中...)
- iOS学习笔记15—Cocoa:NSOperation和NSOperationQueue
- 没有正确安装GNOME电源管理器的默认配置
- EditText的光标有时不见了
- Linux下如何查看某一进程的CPU占用率
- Unable to build the default ValidatorFactory(rewrite)
- 在flash builder中将flex项目导出单独的swf文件 全编译flash
- linux 安装应用软件的常用办法
- 无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了 DISPLAY 变量。 未通过