虚拟入侵游戏Ingress初始指南

2013年11月19日注:我手上有10枚Ingress的邀请码,需要的请在本文后面留言(电子邮件一栏填好GMail地址即可,评论正文不用写电子邮件以免被爬虫捉去发垃圾邮件。)。(不再玩Ingress了)

Ingress是什么?引用维基百科的话:

Ingress是一款扩增实境(Augmented Reality)大型多人电子游戏,由 Google 的 NianticLabs 开发,于2012年11月16日发布,现时处于封闭测试(Closed Beta)状态,需要获取邀请码才能加入。

所以,要玩Ingress的话,首先要去官网申请一个邀请码

Continue reading “虚拟入侵游戏Ingress初始指南”

自己编译ownCloud for Android

之前介绍过ownCloud私有云服务了,下面讲一下怎么自己编译它的Android客户端。之所以要自己编译,原因有两点:

  • ownCloud在Play Store上要收费的,0.99刀
  • ownCloud在Play Store上限制了区域,即使愿意出钱也不能下载

搭建一个Android SDK环境不要我说了吧?不会的自己找块Google这样的豆腐撞了……下面以Fedora 18 64位系统为例,讲一下我的过程。

Continue reading “自己编译ownCloud for Android”

解开蓝魔Amlogic方案JellyBean 4.1中的boot.img文件

是否很多筒子发现在4.0时代一直用的uImage解包打包脚本突然就不能用了,提示找不到uImage file?我开始也很纳闷,突然闲来想到是不是Amlogic又改回按标准的bootimg.h里面描述的格式来处理这个文件了?

刚刚一试验,果不其然!多年前做Motorola MB200的ROM时,曾去解包boot.img来改开机静态图片(我当时真是够无聊的),当时用的就是这个Perl脚本,实验证明现在还能用!(标准就是标准啊!)Google一圈还找到一个配合使用的shell脚本方便地将boot.img完全解开~

于是,HatMod项目今天华丽丽地加了commits了,各位可以去我的GitHub项目上抓取解包和打包脚本 (legacy目录下是解包和打包4.0时代的boot.img的!)。

由于W22PRO还没有官方4.1固件,因此我无法尝试是否打包后刷入能用,只是下载了W28的固件,去解包和打包了boot.img都是可以的,不过没有用真机测试。

把CWM Recovery刷入W22PRO的内置存储器中

之前TWRP的Recovery触摸操作看起来很是过瘾,但是鄙人表示一直用CWM用惯了啊有木有!所以自己fork了CT的代码然后merge了CyanogenMod的jellybean分支,自己创了一个jellybean-aml分支出来(在github我的项目上有,需要的自己去checkout)。

做uImage_recovery这个文件不难,我的HatMod项目里面有解包和打包脚本,先把官方固件的uImage文件解包出来,然后用自己编译得到的CWM recovery的root里面的内容替换(boot下面的两个ko模块可以删掉),init文件我还是用的官方的init,然后repack脚本用我后来上传的那个gzip开头的脚本,这样可以在生成镜像之前先做一次gzip压缩,不压缩的话是会提示体积过大而打包失败的。

上面讲了一堆略有点技术流的东西,下面说说怎么把这个uImage_recovery刷到我们的W22PRO机器内置存储器中!这样就不需要外置的microSD卡也能进入CWM Recovery了,可喜的地方还在于CWM Recovery支持从机器内置存储器(就是大小13GB的那个)读取zip刷机包来刷机,还支持adb sideload功能,总而言之就是把CWM Recovery刷到机器NAND后——腰不酸腿不疼了!

技术达人们自己写刷机脚本打包刷进去就好了。我也特意制作了一个直刷到NAND的zip包,所以下面讲最简单的办法:

  1. 下载zip包(我放在SourceForge上了,文件名为cwm-based-6.0.2.3-flashable.zip)
  2. 将zip包放在外置SD卡上,进入CWM Recovery或者TWRP Recovery(或者官方Recovery都可以!)
  3. 选择Install zip from SDcard,然后找到cwm-based-6.0.2.3-flashable.zip确定刷进去
  4. 看到屏幕显示“Complete”就表示完成了!(如果有任何Error字样出现表示失败了。。。)

怎样确认成功刷进去了呢?重启进入CM10,长按电源键弹出关机菜单,选择重启,然后选择Recovery(可能被翻译成“恢复模式”了),确认后等待机器重启。如果没有刷进去就会重启进入官方原生的Recovery,而如果成功刷入的话就会进入CWM Recovery了!当然还有很多验证办法我就不一一列举了。

对了,我的GitHub项目页面(都是源代码或者脚本):

小白们可能喜欢的是SourceForge的RamosROMs项目(都是刷机包、Recovery之类的成品)

编译CM10 for W22PRO的相关过程记录

先说一下git的操作好了,这个git其实我也是今年刚开始用,之前都是用svn的(subversion其实也不太会……说来这些版本控制工具我都记不住指令啊……)。

因为蓝魔W22PRO用的是Amlogic MX(meson6)方案,而Christiantroy已经专心耕耘艾诺精灵2很久了,他在github上的很多项目,只要有jellybean-aml分支的基本就是需要fetch拿来用的。不过有一点问题的就是,最近这位大哥在搞CM10.1去了,repo都没有更新上游(CyanogenMod)的改动,所以其它的部分如果用CyanogenMod的上游代码就会造成一些问题。还好有强大的git帮我们合并这些更改。

首先进入一些需要为Amlogic修改的目录(因为我已经做了这项工作了,减轻了各位的压力,大家直接fetch我的那些github项目就好了),git checkout jellybean-aml 确保在jellybean-aml这个分支里面,然后git remote -v看一下有没有上游CyanogenMod的repo,没有的话得先git remote add NAME git://XXXXXX 添加一个NAME远程仓库(这些全部大写的字母都是可以自行变动的),然后git fetch NAME把源码下载到本地,只需简单的一个git pull NAME jellybean就能把NAME仓库的jellybean分支合并到当前分支(jellybean-aml)了!如果有冲突的话会提示的,一般不会有冲突会自动merge并做一个ref节点,如果你没有自己开项目就这样好了。如果有的话(比如我),就需要git push MINE提交这次变动到自己的远程仓库(MINE)。再说一下啦,我已经做过这项工作了,短期内大家直接取我的项目源码就可以了。

上面讲了那么多git的废话……下面讲一下编译。

如果你还没有W22PRO的源码,请上我的非官方项目clone下来到合适的位置(如果你这不知道就不要看这篇文章了,谢谢……)

cd /PATH_TO_CM/
 . build/envsetup.sh
 lunch
 make -j4

老掉牙的几个步骤……lunch菜单选择cm_w22pro-userdebug那个就好了(输入数字回车),make -j4表示用四个线程并行编译。

在我的笔电上每次从头完整的编译要2~3个小时。我的硬件配置?AMD 四核 2.0GHz,4G RAM(显然有点小,为了避免内存消耗完毕而出错终止,强烈建议创建一个swap分区或者swap文件,大小至少1G,建议4G以上)。

还没有开始编译的记住了,放CM/Android源代码的那个分区建议40G以上,而且必须是EXT2/3/4或者BtrFS、XFS之类的Linux分区!

编译蓝魔W30的CM10之源码准备

大体参考CM的Wiki: http://wiki.cyanogenmod.org/wiki/Galaxy_Nexus_%28GSM%29:_Compile_CyanogenMod_9_%28Linux%29

提示一下就是repo这个脚本需要翻墙才能下载成功。

下面简单写一下终端操作的笔记:

#获取CM10的代码
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
repo sync
#获取三星Galaxy S III的源码(因为W30的CPU和Galaxy S III是一样的,这里偷懒直接用CM的脚本获得相关源码)
. build/envsetup.sh && breakfast i9300
#获取CM的预编译文件
vendor/cm/get-prebuilts

好了,现在要做的就是这么多了。接下来就是对Galaxy S III的设备源码部分进行修改,使之匹配W30, 当然,要新开一个目录,等我初步完成后会在github上托管的,到时候还会回来更新本篇文章。 W30开源项目 (fork & play!)

还需要获取三星的部分专利源码,找了半天,终于在GitHub找到了一个项目有的,

git clone git://github.com/TheMuppets/proprietary_vendor_samsung.git -b jellybean

同步这个项目后,把里面的文件夹都放在vendor/samsung/下面,然后修改vendor/samsung/smdk4412-common/proprietary/Android.mk这个文件,把ifneq ($(filter i9300 n7100 n8000 n8013,$(TARGET_DEVICE)),)改成ifneq ($(filter i9300 n7100 n8000 n8013 w30,$(TARGET_DEVICE)),) ,也就是在filter后面加上w30,不然的话不能正确调用一些共享依赖库会编译出错。

制作蓝魔W13PRO兼容包笔记

因为没有W13PRO的机器,靠论坛的朋友测试,制作了五次兼容包才成功。下面简单说一下心得什么的。

底包都是Christiantroy为艾诺精灵II制作的固件(CM10和AOKP),兼容包里面的东西是取自之前夜游(wisunny)编译的AOKP(尝试过官方固件的东西,根本开机都不行。。。),想研究的话,大家可以拆开我的兼容包,对照本笔记还是很有帮助的。

首先要解决的是内核,直接拿夜游的boot.img就可以了,我尝试解开boot.img结果发现失败了,还不知道怎么回事,可能做过什么加密之类的吧。

其次让我们进入system目录下吧,lib下的libhardware_legacy.so这个文件是和WiFi的驱动加载有关的,这个文件决定了开启关闭WiFi要加载和卸载的驱动模块,因为底包的WiFi驱动都是dhd.ko,而W13PRO用的WiFi驱动是wlan.ko!

usr/idc下面那个pixcir168.idc文件是和触摸屏有关的,也必须带上。

lib/modules下都是对应内核的模块,直接从夜游AOKP里取的,etc文件夹下的东西大家看一下就明白了,只是提一下里面be_movie和be_photo是SONY Bravia Engine,不算“兼容”的内容,应该算做“补丁”部分。

bin下面的set_display_mode.sh是很关键的,设置屏幕分辨率的,如果数值不对会造成显示画面太小或者太大。

回到第一层,META-INF/com/google/android/updater-script这个脚本文件包含了刷机时要做的事情,如果有人修改了补丁包重新打包,记得要看看该更改权限的地方有没有更改。最外面的addition脚本文件则是针对build.prop进行修改的,用的是sed这个强大的文字处理工具,其实我也不太懂sed,边Google学边写的。

最后说一下刷GApps失败的问题,估计是万恶的system分区(UBI格式)没有被成功加载,所以我解包重新修改了updater-script的相关函数。

另外要提到的就是/sbin/下可能并没有sh这个文件或者其软链接,因此脚本文件的首行的#!/sbin/sh应该改成#!/system/bin/sh,以免脚本文件根本无法执行。

下载地址神马的上蓝魔之家去看我的帖子

Android手机平板上设置Exchange收发Hotmail(Outlook)邮件

现在微软的邮件服务已经升级到outlook.com了,不过原来的hotmail还暂时保持了服务。

不喜欢Hotmail的客户端怎么办呢……用Android自带的“电子邮件”这个应用就可以了。

  • 新建一个Exchange用户
  • 域用户名那一栏填写“XXXX@outlook.com”或者”XXXX@hotmail.com”就可以了(不包含引号)
  • 密码填邮箱密码
  • 服务器地址填  m.hotmail.com

可以啦,其他的不用改动,然后设置一下要同步的内容,我是只勾选同步电子邮件,毕竟日历这些我还是靠Google提供的服务完成的。

蓝魔W22PRO的CyanogenMod 9发行注记

首发在蓝魔之家了:http://www.ramosfans.com/thread-39349-1-1.html (含最新版的下载地址)。

本文属于发行注记。

1.欢迎使用CM9 for W22PRO

CyanogenMod是地球上广为人知的Android开发团队,具有超强的社区协作和开放源代码的精神!基于CM代码并加以修改以适用于蓝魔W22PRO的非官方版由@librehat编译制作完成。

秉承着开源精神,相关代码均托管在GitHub上。你可以访问https://github.com/librehat 查看@librehat在GitHub上的各个项目。

2.CM9 for W22PRO的亮点

  • 支持EXT4分区格式
  • 支持OTG外接蓝牙
  • 支持openVPN和l2tp VPN
  • 加入了大量驱动模块
  • 修正组合条隐藏的功能
  • 利用Amlogic的代码实现多媒体硬解播放
  • 高速平滑的触摸体验,完整的旋转动画
  • SONY Bravia Engine
  • 完美继承CM9的各种特性

3.性能与续航

  • 最高频率提升到1.5GHz
  • init.rc的优化与改良
  • 默认CPU调节模式为Conservative
  • 改善表现的同时保证了正常使用达一天的续航时间

4.反馈

推荐在蓝魔之家的反馈专帖后跟帖反馈,当然你也可以在我的推他这里反馈。

5.刷机要点

最佳刷机办法是按照这个帖子制作镜像卡,然后将CM9压缩包解开,用CM9里面的update.zip替换制作好的镜像卡根目录下的同名文件。镜像刷机办法是最保险最安全的(据机油称)。

其次可以直接将压缩包解压,文件放在TF卡根目录进行常规卡刷

此外可以参考如何避免内置存储器以及个人数据被清除。(从官方固件刷到CM9请勿这样操作,仅适合CM9的旧版本升级到CM9的新版本)

6.多种分区格式支持

  • FAT32
  • NTFS
  • EXT4

7.OTG功能

  • OTG键盘
  • OTG鼠标(目前存在反转问题)
  • OTG外接U盘等存储器
  • OTG手柄
  • OTG外接GPS(未测试)
  • OTG外接蓝牙

8.全屏隐藏组合条

设置->系统->组合条,可以设置使底部组合条隐藏。如果修改了build.prop中的ro.disable_permanent_hidebar=0使其永远隐藏的话,注意需提前使用改键位的工具让音量键充当返回键的功能。

9.本地和网络的多媒体解码

  • 支持H.264 High Profile解码(PPS高清源播放)
  • 支持优酷HD超清播放(目前优酷的编码方式不是HP不能硬解)
  • 支持多种格式的720P、1080P硬解播放(MKV等格式的完美硬解,RMVB格式的1080P需通过第三方播放软件软解播放)
  • 充分利用CPU的NEON和VFPv3特性

10.来自CM9的特性

  • 绚丽的开机动画
  • Apollo音乐播放器和DSP音效管理器
  • 通知栏的自定义
  • 支持CM9的主题系统
  • Trebuchet桌面启动器
  • 改进的支持WebGL的浏览器(直接访问y.qq.com就能在线听歌)
  • 其他代码上的改善和程序的优化等

11.与官方固件的主要差别

  • 去除了“媒体播放器”,改用amlogic的lib库使视频播放器实现硬解
  • 不再支持硬解版的Flash Player插件
  • 外放音量显著变大
  • SD卡和内置存储器的挂载点变动
  • 屏幕旋转等有了动画效果(更为完整的Android体验)

在Linux下修复半砖的蓝魔W22PRO

今天刷其它机器的刷机包,不出所料直接“半砖”(屏幕黑掉而已,连接电脑还是有adb的,机身有发热,说明并未彻底死掉)。

结合之前发布的变砖修复工具和镜像就能恢复的。可是不想重启到Windows下弄,怎么办呢?装一个qemu-img就可以解决了~以Fedora Linux 17为例:

su -c 'yum install qemu-img -y'

然后在终端下执行:

qemu-img convert -O raw W22pro_ICS.w22ref.20120906.vhd w22pro.raw

接着把TF卡插在读卡器连接电脑(本例中Linux识别TF卡为/dev/sdc)

su -c 'dd if=w22pro.raw of=/dev/sdc'

等待终端提示写入完成,接下来的步骤和Windows下一样,修改文件、复制aml_autoscript等等。

弄好修复卡后,插入平板,按住音量-键和电源键不动大概10秒,会看到W22PRO MX双核之类的Logo出现然后就可以松手了,一直等其自动完成。

 

P.S. 修复镜像下载见蓝魔之家论坛帖子