阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 3290阅读
  • 1回复

[安全漏洞公告专区]编译可在Nexus5上运行的CyanogenMod13.0 ROM(基于Android6.0)

发帖
107
云币
373
N@PwC(   
编译可在Nexus5上运行的CyanogenMod13.0 ROM(基于Android6.0)
  
作者:寻禹@阿里聚安全
QTa\&v[f  

bI0xI[#Q  
前言 I=&i &6v8G  
%|H]T] s  
VCc=dME  
下文中无特殊说明时CM代表CyanogenMod的缩写。 下文中说的“设备”均指Android设备。 hev;M)t  
proprietary-blobs.txt文件的路径:device/lge/hammerhead/proprietary-blobs.txt mF@7;dpr  
cu>(;=  
参考资料 P@UE.0NYX  
%7mGMa/  
How To Build CyanogenMod For Google Nexus 5 (“hammerhead”) !%65YTxY-  
本文中只列出与上面的参考资料中不同的地方,所以需要将上面的参考资料与本文结合起来阅读。 $>#0RzU  
^*fD  
下载CM13.0 ROM JqO1 a?H  
QErdjjg E  
repo init -u git://github.com/CyanogenMod/android.git -b cm-13.0 0e0)1;t\  
\}h   
注意事项 Y910\h@V  
>#:SJ?)`T  
构建ROM之前设备上必须先安装相应的ROM L~/,;PHN  
&=)O:Jfa  
在参考资料中有这么一段话: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. 2LN6pu  
这段话的意思是,如果你要为Nexus5设备构建cm13.0的rom,你必须先在Nexus5设备中安装cm13.0的rom。 G 3U[)("  
mmJnE  
仔细检查extract-files.sh在终端中的输出 ~.3v\Q  
'A5T$JV.r4  
仔细检查extract-files.sh在终端中的输出,因为这里面可能包含一些执行时出错的信息,一旦有错误信息就要修复错误,修复错误的思路请参考“问题解决”一节。 }I uqB*g[t  
F<{,W-my `  

问题解决 M`al~9  
m2^vH+wD  
h=`$ec  
adb拉取apk文件失败 eZa7brC|  
hO[_ _j8  
执行./extract-files.sh脚本时可能会出现下面的错误:ERROR: Pull file /system/app/shutdownlistener.apk from a device running CyanogenModERROR: Pull file /system/app/TimeService.apk from a device running CyanogenMod  ^cw9Yjh6  
这是由于指定的apk文件路径不对,要从设备上拉取的文件列表记录在"proprietary-blobs.txt”中。 :z P:4 NW  
rM.Pc?Z  
rK'Lvt@w  
解决办法 OEaL2T  
D+:s{IcL<  
octQ[QXo#  
找到“proprietary-blobs.txt”文件中的下面两行:-/system/app/shutdownlistener.apk-/system/app/TimeService.apk P\K#q%8  
更改为:-/system/app/shutdownlistener/shutdownlistener.apk-/system/app/TimeService/TimeService.apk *K_8=TIA*  
Mm*V;ADF  
[ x+ -N7  
adb拉取/system/bin下面的文件失败 ox`Zs2-a  
Htr]_<@  
执行./extract-files.sh脚本时可能会出现下面的错误:remote object '/system/bin/bridgemgrd' does not exist $"NH{%95}  
这个文件在设备上是存在的。这个文件在设备上的权限是: X<IW5*   
-rwxr-xr-x 1 root shell 46900 2008-12-31 21:00 bridgemgrd v@Eb[7Kq/1  
可以发现other用户是可以读取这个文件的,但是奇怪的是无法通过adb pull命令拉取。 '.z7)n  
[- 92]  
;b 65s9n^b  
解决办法 bP-(N14x+  
n\D/WLvM  
9;%$  
1、在CM ROM中是可以开启ROOT访问的,此时我的CM ROM的设备上显示的语言是英文的,所以我以英文来说。打开设备上的”Developer options”(即,开发者选项),找到”Root access”并点击,然后点击”Apps and ADB”,这样设置完后app和adb都可以无碍的申请root权限。 ?xUl_  
2、在pc的终端中输入命令:adb root,表示设备上以root权限重启adbd。然后就再次adb pull拉取设备/system/bin目录中的文件将会成功。 >b"@{MZ@t  
: 8>zo  
找不到/system/prev-app中的apk j[i*;0) |  
X7OU=+g  
_Ycz@Jn  
执行./extract-files.sh脚本时可能会出现下面的错误:ERROR: Pull file /system/priv-app/OmaDmclient/OmaDmclient.apk from a device running CyanogenModERROR: Pull file /system/priv-app/SprintHiddenMenu/SprintHiddenMenu.apk from a device running CyanogenMod %[KnpJ{\  
 kSEA  
ssQ1u.x9  
解决办法 Q8Ek}O\MC  
BMO,eQcB  
}iDRlE,  
找到"proprietary-blobs.txt”文件中的下面两行:-/system/priv-app/OmaDmclient/OmaDmclient.apk SaGI4O_\s  
-/system/priv-app/SprintHiddenMenu/SprintHiddenMenu.apk 0 N7I:vJ  
3HXeBW  
9~j"6wS  
更改为:-/system/app/OmaDmclient/OmaDmclient.apk-/system/app/SprintHiddenMenu/SprintHiddenMenu.apk Gi-pi=#&cs  
"Cxj_V@\  
xib}E[-l#  
当遇到这个问题时只改"proprietary-blobs.txt”文件中的内容是不够的。找到”device/lge/hammerhead/setup-makefiles.sh”文件,将该文件中相应的”priv-app”更改为”app”。找到"vendor/lge/hammerhead/proprietary/Android.mk”文件,将该文件中相应的”priv-app”更改为”app”。 t)8c rX}P  
z =H?@z  
"k + :!D  
Q (N'Oj:J  
W (TTsnnx  
作者:寻禹@阿里聚安全,更多技术文章,请访问阿里聚安全博客 *IbDA  
j,].88H  
[ 此帖被移动安全在2016-08-03 15:50重新编辑 ]
级别: 论坛版主
发帖
9349
云币
14165
只看该作者 沙发  发表于: 2016-08-03
CM14 估计也快了
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)