Android 服务器编译下载

    本地编译一直无法通过,Jack-server一直无法启动,尝试了更换端口,更改heap size和添加prebuild路径都未成功,为了不影响进度,改用服务器编译,本地编译的问题,在空余时间继续研究。

    假设自己在服务器上的名字是A,服务器的地址是B,链接服务器的命令如下;

    ssh -l A B

    登入之后,操作和本地完全一样,同样新建一个Android的目录,用于存放代码。

    需要注意的是,在服务上也要先设置一个Gerrit ssh key,这样才能进行repo init 。添加完新的ssh key 之后进行拉代码操作:

   

$ repo init -u ssh://git.rdamicro.com:29418/android/platform/manifest.git -b rdadroid-7.0 \
  --repo-url=ssh://git.rdamicro.com:29418/android/tools/repo.git --no-repo-verify
  $
  $ repo sync

     等待代码同步完成,即可开始编译。

     编译一次通过,看来Jack服务器的port没有和别人重复,否则需要重新配置port才能正常启动Jack服务器。

     下面用到/out/host/linux-x86/bin$ pdltotal,利用 pdltotal命令将编译生成的pdl1.bin/pdl2.bin/bootloader.img/boot.img/modem.img/system.img/vendor.img/recovery.img文件合成一个bin文件,方便下载到目标手机。

    pdltotal给出的命令说明如下:

     pdltotal download total_file [-format -debug -erasedata]
     pdltotal extract total_file [out_dir]
     pdltotal merge total_file pdl1.bin pdl2.bin [bootloader.img boot.img ...]
     pdltotal mergeall total_file out_target_dir  //  pdltotal mergeall  生成的目标文件  被合成文件的目录(即pdl1.bin/pdl2.bin/bootloader.img/boot.img/modem.img/system.img/vendor.img/recovery.img等文件所在目录)
     pdltotal connect
     pdltotal execute binfile [0xADDR]


这里做如下操作:out/host/linux-x86/bin$ pdltotal  mergeall 1.bin ../../../target/product/XX-XXX/

命令行提示开始合成,但是合成结束后在/out/target/product/XX-XXX下找不到1.bin这个文件,说明合成失败了。


重新尝试在out_target_dir下做此操作out/target/product/XX-XXX$ ../../../host/linux-x86/bin/pdltotal  mergeall 1.bin . 这次成功了,看来要在out_target_dir才行,最后的“.”表示当前目录。

这里../../../表示在此目录前往上推3级目录,每个../表示一级目录。


下面将合成好的bin文件拷贝到本地,以便下载。执行下列命令scp A@B:/home/A/workspace/Android/out/host/linux-x86/bin/pdltotal  ./  最后的./表示当前路径,执行完后,查看本地,文件1.bin已经拷贝成功。


执行下面操作进行下载:

A@A-To-be-filled-by-O-E-M:~/workspace/Android/out/host/linux-x86/bin$ sudo ./pdltotal download ~/1.bin -format //这里~代表home路径,-format表示格式化,这是pdltotal带的参数,参见上面的help. 因为目标机器里面有Android4.4的版本所以这里选择了格式化再下载.

Connect to device...OK!
Prepare to download 8 images,

[pdl1] Start to download...
[pdl1] Download data..100%
[pdl1] Download SUCCESS!
[pdl1] Execute..SUCCESS!

[pdl2] Start to download...
[pdl2] Download data..100%
[pdl2] Download SUCCESS!
[pdl2] Execute..SUCCESS!

Format the whole flash..
Format DONE!

Send image list [bootloader,boot,modem,system,vendor,recovery] DONE!

[bootloader] Start to download...
[bootloader] Download data..100%
[bootloader] Download SUCCESS!

[boot] Start to download...
[boot] Download data..100%
[boot] Download SUCCESS!

[modem] Start to download...
[modem] Download data..100%
[modem] Download SUCCESS!

[system] Start to download...
[system] Download data..100%
[system] Download SUCCESS!

[vendor] Start to download...
[vendor] Download data..100%
[vendor] Download SUCCESS!

[recovery] Start to download...
[recovery] Download data..100%
[recovery] Download SUCCESS!


All work is DONE!

Total used time: 160.290 seconds

下载成功。


这里虽然本地Java部分编译失败了,但是kernel部分编译成功了,所以这里使用了本地的pdltotal命令进行下载,这点从上面的命令可以看出是在本地执行的。如果单纯的将服务器上pdltotal拷贝下来是无法正常执行的,他还需要其他环境支持,又需要额外调试,因此本地环境的搭建还是很有必要的,空余时间一定要尝试将本地编译成功完成。


补充:本地编译过程中,系统默认会从/usr/bin的位置去寻找Java/Javac/jar/javadoc等命令,开始安装JDK时直接安装在了此目录下,做Java--config时一次提示成功了,以为真的成功了,最后编译发现找不到可执行的Java等命令,又将JDK移动到/usr/lib下,并且将Java/Javac/jar/javadoc等命令链接到/usr/bin,才能正常编译。Ubuntu默认需要用户提供指定的JDK版本,因此即使直接安装到/usr/bin也是需要额外的一步链接过程的,这里没有将JDK再移动回去再做尝试,推测从理论上应该如此。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值