Atrix 4G 4.1.2 jellybean固件

这个是4.1.2的固件,根据最新的代码编译而成。目前基本上属于稳定状态。但摄像头的录像模式有些问题。

已知的问题如下:

1. 摄像头无法录像,点了录像,但最终无法录下来

2. 摄像头在和图库互相操作时,出现问题的时候,会出现“无法连接摄像头”(记得是这个)的错误,不过重启之后消失。

3. 指纹无法使用

其他功能正常

下载位置:cm-10-20130414-UNOFFICIAL-olympus-RIX.zip

md5校验:bcd16502dc4a17949aa65d2a6df61427 cm-10-20130414-UNOFFICIAL-olympus-RIX.zip

google app应用地址(来自epinter)gapps-jb-20121019-olympus-signed.zip

主要的修改如下:

1. 默认使用手机自带的存储,比较习惯

2. 去掉了apollo播放器,使用默认的播放器,我不习惯apollo播放器

3. 摄像头录像添加640X480,不过,录像有问题,所以白弄了。

以下是编译过程中的相关备注:

没有使用3.1的内核,原因是新的内核目前只支持ICS和GB(还有可能只能用在MROM中),在4.1.2和4.2.2中使用的话,启动之后会出现两个绿色启动界面(平行双屏,竖行占一半),无法进入系统。而且,新的内核不知道wifi相关的如何编译。

原始的拼音输入法在4.1.2中无法启动,原因没有调查。

录像问题的原因应该是:failed to allocate node OMX.Nvidia.h264.encoder,从我调查到的OMX代码上看,和CM9(即ICS版本)基本一样,没有时间再往下调查。

已知问题的第2个,出现这样的原因是一个摄像头相关的进程僵死(猜测),造成系统的一个sys.secpolicy.camera.disabled的标志为1,在frameworks/av/services/camera/libcameraservice/CameraService.cpp代码中connect的时候直接返回NULL。没有再往下调查。

在启动google play下载的时候,如果出现下载任何软件都无法下载的话,可到”系统设置”中删除已经存在的账户,然后重启,重新添加即可

我的原始代码是4.2.2,本来想直接用最新的,但发现最新的代码问题多多,又不想重新下载那么多的内容,只是修改了仓库的配置文件,然后就直接编译,结果发现不管如何都用的是3.1的内核,没办法删除了初.repo之外的所有文件,然后重新获取编译,这下才正常。

对4.2.2的问题做了一些调查,默认的4.2.2蓝牙使用的是bluedroid,但4.0.4和4.1.2都使用的是bluez,尝试将4.2.2的修改使用bluez,结果还是一样,蓝牙无法开启,调查bluedroid,很多状态都不对,没有再跟了。

4.2.2的wifi AP的问题和4.2.2的蓝牙相类似。

4.2.2的摄像头拍照没有问题了,但切换到录像的时候,无法切换过去,没做深入调查,但最新的代码不做修改的话,可以切换过去,不过,拍照和录像的屏幕都是白的,无法预览,拍照可以成功,录像刚开始存在文件(以.tmp为后缀),但最终没有生成正确的文件。

4.1.2和4.2.2的指纹对我而言,都不是重要的,因为那个实在鸡肋,无太大用途。

下载atrix 4g官方源代码脚本

这是个很老的脚本,文件的列表忘了当时是手动整理的还是通过另外一个脚本获取的,这个脚本的功能很简单,就是下载官方的那一大堆文件(如果某个文件存在的话,则不下载),然后按照规定的目录格式解压缩好。接下去,覆盖原来的Android源代码即可。

       #!/bin/sh
url_base="http://jaist.dl.sourceforge.net/project/atrix.motorola/Atrix%20ATT/4.5.91/"
package_list="README.txt system-core.tgz vendor-bcm-wlan-osrc.tgz system-bluetooth.tgz motorola-external-wbxmlparser.tgz motorola-external-visualization.tgz motorola-external-util-linux.tgz motorola-external-lbl.tgz motorola-external-hunspell.tgz motorola-external-jcifs.tgz kernel-tegra.tgz motorola-external-bthelp.tgz external-webkit.tgz external-iptables.tgz external-iproute2.tgz external-e2fsprogs.tgz external-expat.tgz external-dnsmasq.tgz external-dbus.tgz external-bluetooth-glib.tgz external-bluetooth-bluez.tgz build.tgz bionic.tgz"
cur_dir=`pwd`
dist_dir='Android'
for package in $package_list
do
if [ ! -f $package ] 
then
	wget "$url_base$package"
fi
	file=`echo $package | sed -e 's/-/\//g'`
	dir=${file%.*}
	mkdir -p $dist_dir/$dir && cd $dist_dir/$dir && tar xvf $cur_dir/$package
	cd $cur_dir
done
       

修改url_base可以选择对自己较快的服务器。

package_list是软件包的全名称。下载完之后,会将所有内容解压缩到当前目录的Android目录中,里面的文件路径已经整理好了

为Atrix 4g编译CM 9.0

最近在尝试使用CM9.0,别人编译的,但总觉的不太满意,就决定自己重头编译一个吧。这个是编译的过程记录。

两个文档:

官方的Atrix 4g的CM编译文档,不过是2.3.5的:http://wiki.cyanogenmod.com/wiki/Motorola_Atrix_4G:_Compile_CyanogenMod_%28Linux%29

基本上是中文翻译,我没怎么看:http://www.ronalp.com/201203192.html

根据官方文档,下载代码,大约9GB左右,所以时间长,可以仔细看看上面的两个文档。checkout的时候,注意使用下面的命令:

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

先执行下面的内容:

repo sync

第二步,需要从手机中copy的,不过目前olympus还没有加入,因此,执行下面的内容,检出olympus的代码,记得加分支:

       rm -rf device/motorola/olympus
       rm -rf vendor/motorola
       git clone https://github.com/Atrix-Dev-Team/proprietary_vendor_motorola.git -b ics vendor/motorola
       git clone https://github.com/Atrix-Dev-Team/android_device_motorola_olympus.git -b ics device/motorola/olympus
       

然后再执行那个extract-files.sh

第三步,下载RomManager,这一步也有点不同,新的目录是vendor/cm,运行里面的什么prebuild的shell脚本,没记住,执行之后,就会从网上下载一些文件,然后会解压缩之类的,不用管

第四步,第三步下载的内容应该比较新,下载的代码脚本还没有更改,需要将vendor/cm/config/common.mk中的libjackpal-androidterm3.so修改为libjackpal-androidterm4.so,如下:

       PRODUCT_COPY_FILES +=  \
    vendor/cm/proprietary/RomManager.apk:system/app/RomManager.apk \
    vendor/cm/proprietary/Term.apk:system/app/Term.apk \
    vendor/cm/proprietary/lib/armeabi/libjackpal-androidterm4.so:system/lib/libjackpal-androidterm4.so
       

最后,执行下列命令:

       . build/envsetup.sh && brunch olympus
       

漫长的等待,等待,可以洗个澡,睡个觉,泡泡妞,总之,好几个小时之后,就会在out/target/product/olympus/目录中出现update.cm-XXXXX-signed.zip,这个就是和网上发布的那个zip包一样了,剩下的实机操作和别的没什么区别了。