zoukankan      html  css  js  c++  java
  • 编译可在Nexus5上运行的CyanogenMod13.0 ROM(基于Android6.0)

     

    编译可在Nexus5上运行的CyanogenMod13.0 ROM

    (基于Android6.0)

    作者:寻禹@阿里聚安全


    前言

    下文中无特殊说明时CM代表CyanogenMod的缩写。 

    下文中说的“设备”均指Android设备。

    proprietary-blobs.txt文件的路径:device/lge/hammerhead/proprietary-blobs.txt

    参考资料

    How To Build CyanogenMod For Google Nexus 5 (“hammerhead”)

    本文中只列出与上面的参考资料中不同的地方,所以需要将上面的参考资料与本文结合起来阅读。

    下载CM13.0 ROM

    repo init -u git://github.com/CyanogenMod/android.git -b cm-13.0

    注意事项

    构建ROM之前设备上必须先安装相应的ROM

    在参考资料中有这么一段话:

    Note:Your device should already be running a build of CyanogenMod for the branch you wish to build for the extract-files.sh script to function properly.

    这段话的意思是,如果你要为Nexus5设备构建cm13.0的rom,你必须先在Nexus5设备中安装cm13.0的rom。

    仔细检查extract-files.sh在终端中的输出

    仔细检查extract-files.sh在终端中的输出,因为这里面可能包含一些执行时出错的信息,一旦有错误信息就要修复错误,修复错误的思路请参考“问题解决”一节。


    问题解决

    adb拉取apk文件失败

    执行./extract-files.sh脚本时可能会出现下面的错误:

    ERROR: Pull file /system/app/shutdownlistener.apk from a device running CyanogenMod

    ERROR: Pull file /system/app/TimeService.apk from a device running CyanogenMod

    这是由于指定的apk文件路径不对,要从设备上拉取的文件列表记录在"proprietary-blobs.txt”中。

    解决办法

    找到“proprietary-blobs.txt”文件中的下面两行:

    -/system/app/shutdownlistener.apk

    -/system/app/TimeService.apk

    更改为:

    -/system/app/shutdownlistener/shutdownlistener.apk

    -/system/app/TimeService/TimeService.apk

    adb拉取/system/bin下面的文件失败

    执行./extract-files.sh脚本时可能会出现下面的错误:

    remote object '/system/bin/bridgemgrd' does not exist

    这个文件在设备上是存在的。这个文件在设备上的权限是:

    -rwxr-xr-x 1 root shell 46900 2008-12-31 21:00 bridgemgrd

    可以发现other用户是可以读取这个文件的,但是奇怪的是无法通过adb pull命令拉取。

    解决办法

    1、在CM ROM中是可以开启ROOT访问的,此时我的CM ROM的设备上显示的语言是英文的,所以我以英文来说。打开设备上的”Developer options”(即,开发者选项),找到”Root access”并点击,然后点击”Apps and ADB”,这样设置完后app和adb都可以无碍的申请root权限。

    2、在pc的终端中输入命令:adb root,表示设备上以root权限重启adbd。
    然后就再次adb pull拉取设备/system/bin目录中的文件将会成功。

    找不到/system/prev-app中的apk

    执行./extract-files.sh脚本时可能会出现下面的错误:

    ERROR: Pull file /system/priv-app/OmaDmclient/OmaDmclient.apk from a device running CyanogenMod

    ERROR: Pull file /system/priv-app/SprintHiddenMenu/SprintHiddenMenu.apk from a device running CyanogenMod

    解决办法

    找到"proprietary-blobs.txt”文件中的下面两行:

    -/system/priv-app/OmaDmclient/OmaDmclient.apk

    -/system/priv-app/SprintHiddenMenu/SprintHiddenMenu.apk

    更改为:

    -/system/app/OmaDmclient/OmaDmclient.apk

    -/system/app/SprintHiddenMenu/SprintHiddenMenu.apk

    当遇到这个问题时只改"proprietary-blobs.txt”文件中的内容是不够的。找到”device/lge/hammerhead/setup-makefiles.sh”文件,将该文件中相应的”priv-app”更改为”app”。找到"vendor/lge/hammerhead/proprietary/Android.mk”文件,将该文件中相应的”priv-app”更改为”app”。

     

    作者:寻禹@阿里聚安全,更多技术文章,请访问阿里聚安全博客

  • 相关阅读:
    检查SQL Server 2005的索引密度和碎片信息(转)
    数据库系统异常排查之DMV(转)
    sql server性能分析--执行sql次数和逻辑次数
    sql语句优化
    C#获取文件夹下的所有文件的文件名
    siebel学习笔记-应用/数据访问控制
    FlexPaper实现文档在线浏览(附源码)
    C# Process.WaitForExit()与死锁
    前端网站
    微信小程序
  • 原文地址:https://www.cnblogs.com/alisecurity/p/5733484.html
Copyright © 2011-2022 走看看