Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t更换system.img后启动Android设备_Android_Image_Boot - Fatal编程技术网

Can';t更换system.img后启动Android设备

Can';t更换system.img后启动Android设备,android,image,boot,Android,Image,Boot,我正在使用NXP(前身为飞思卡尔)的I.MX53板开发一款定制android设备。我有操作系统的源代码,各种中间文件,以及由另一个开发人员(他定制了操作系统,但后来离开了我们公司)生成的最终结果文件。我现在需要修改这些设备上系统分区的内容。我尝试使用make_ext4fs.exe和包含先前开发人员必须使用的原始文件集合的目录构建并加载一个新的system.img文件。我相信我已经创建了一个与以前使用的系统映像几乎相同的系统映像。它们都是ext420MB 此电路板有一个实用程序(称为MfgTool

我正在使用NXP(前身为飞思卡尔)的I.MX53板开发一款定制android设备。我有操作系统的源代码,各种中间文件,以及由另一个开发人员(他定制了操作系统,但后来离开了我们公司)生成的最终结果文件。我现在需要修改这些设备上系统分区的内容。我尝试使用make_ext4fs.exe和包含先前开发人员必须使用的原始文件集合的目录构建并加载一个新的system.img文件。我相信我已经创建了一个与以前使用的系统映像几乎相同的系统映像。它们都是ext420MB

此电路板有一个实用程序(称为MfgTool),它可以在单击按钮时为您自动复制和安装图像。该MfgTool成功地将我的映像写入设备。然而,当我尝试引导时,它失败了,只是循环显示自定义引导映像。如果在此过程中交换新的系统映像并恢复先前的系统映像,则一切都会恢复正常。因此,这仅仅是一个正确构建系统映像的问题


原因可能是什么?图像中的什么差异可能导致这种情况?是否有可能需要签名,或者我没有解释的其他类型的保护?

将系统映像服务的一个可执行文件替换为一个shell,该shell将kmsg和logcat转储到一个文件(例如在数据分区或外部存储中),然后调用原始可执行文件。然后,引导到以前的系统并收集这些日志。

事实证明,我的主要问题是,在通过make_ext4fs创建映像时,我需要将映像的装载点设置为“system”而不是“/system”,尽管所有文档都与此相反!我通过仔细阅读ASOP源代码了解到这一点:…build\tools\releasetools\img\u from\u target\u文件


值得注意的是,在这一关卡之后,我又遇到了另一个问题,那就是设备表现得很古怪。结果证明,这是因为图像中没有任何符号链接。看起来至少您通常有符号链接将“bash”命令指向system/bin中的工具箱二进制文件。我不知道你通常是如何获得这些链接的,但是创建这些链接并将它们捆绑到图像中修复了这一点。如果手动创建这样的系统映像,我建议检查bin目录中的符号链接。

如果显示自定义启动映像(我假设正常的android徽标已被替换),则Logcat很有可能已启动并运行。你能连接到设备上看看报告了什么吗?我无法进入它。我看到的一切都表明它已启用,但除了通过这个MfgTool之外,我看不到与设备交互的方法。我确实有这方面的来源,所以我想如果需要的话,我可以剖析它。有没有其他常见的方式来查看日志/调试输出?是的,我公司的自定义徽标会显示出来,而不是股票Android图像。这是一个我也成功使用的技巧。但我不会将输出转储到/data/local/tmp中——在成功引导时,该位置经常被清除。在/数据中的任何其他地方都可以。这听起来是一个很好的建议!谢谢我试试看。有什么建议可以添加包装器到哪个服务中吗?如果系统映像是有问题的映像,那么在该映像上执行此操作是否有意义?请搜索init.*rc文件以查找非关键服务。在有问题的系统映像上执行,这就是重点:)我不是Android架构的专家,所以如果这是nube的问题,请原谅,但是bootanimation是否显示了我的启动徽标?我可以看到它的显示,所以我想也许我可以利用我所知道的正在成功执行的东西?