国行Atrix4G折腾全记录

包含:

1、行货鉴定
2、刷2.3.5国行底包
3、ROOT
4、精减
5、刷GMS
6、免DockWebtop
7、全功能Ubuntu
7.1、WebTop2SD(含config,Lxterminal,Synaptic安装)
7.2、WebTopScripts(含chromium安装)
7.3、常用软件安装(thunar, eog, abiword, gnumeric, chmsee...)
7.4、替换BusyBox(安装xz, coreutils, findutils, grep)
7.5、访问Windows文件共享(samba)
7.6、安装JAVA(OpenJDK, FreeMind)
7.7、安装Pidgin
7.8、个人专用安装

1、行货鉴定

机器是国行的,根据此贴鉴定机身电池均为去年4月生产,产地为天津:http://bbs.dospy.com/thread-13065007-1-425-1.html

国行的机器真是非常讨厌,装了一大堆不需要的东西,搞得一个好机器慢得跟蜗牛一样,所以必须折腾一下。

2、刷2.3.5国行底包

自带的系统是2.2.2的,太OUT了,先刷上国行最新2.3.5底包。虽然用OTA也可以,但是觉得太慢了,而且有这个底包以后重刷也方便。感谢古城:http://bbs.dospy.com/thread-13475180-1-425-1.html

刷机方法见此贴,感谢白鸽:http://bbs.dospy.com/thread-13414834-1-425-1.html
其中第一步用到的驱动和刷机工具都可以在MOTO官网下到最新版,因为有2.3.5的底包,所以备份就不必要了。
第二步降级就是实际的刷机过程,只是把原来2.2.2的包改成新的2.3.5的包。
第三步再升级也不必了,因为直接刷的就是2.3.5
补充关于双wipe:2.2.2进recovery的方法是“按住”音量下,再按一下电源,直到显示fastboot以后,松开音量下,再按几次音量下, 直到显示recovery以后接音量上,这时出现小机器人和感叹号,按屏幕右下角进入recovery。2.3.5进recoviery的方法基本与上面 相同,但最后一步是同时按音量上下键进入recovery。

3、ROOT

ROOT方法就是用这个2.3.4的,2.3.5一样可用,感谢白鸽:http://bbs.dospy.com/thread-12941623-1-425-1.html
完了以后重启一下,su一般会提示更新,确认更新,可能会显示成功但仍然提示升级,没关系,再重启一下就好了。

4、精减

精减清单主要是参考白鸽这个帖:http://bbs.dospy.com/thread-12961982-1-425-1.html
更详细的参见白鸽的大百科:http://bbs.dospy.com/thread-13244447-1-425-1.html
以及放古狗搜到的别的一些帖子,比如:http://bbs.gfan.com/thread-2859280-1-1.html
注意:精减前一定要先备份,否则就准备重刷重ROOT吧。备份方式参考前面的白鸽刷机贴第一步,备份到电脑上。或者用adb shell进去,备份到sdcard上:

adb shell
su
cd /sdcard
mkdir systembak
cd /system
cp -R app /sdcard/systembak/
cp -R framework /sdcard/systembak/
cp build.prop /sdcard/systembak/
cp etc/hosts /sdcard/systembak/

恢复的方法类似(需要在R.E.里把system目录挂载为读写)

全部恢复(注意,恢复前要先删除GMS包,以免system空间不足):

adb shell
su
cd /sdcard/systembak
cp -R app /system/
cp -R framework /system/
cp build.prop /system/
cp hosts /system/etc/

精减完或恢复完最好清空cache再重启一下。清空cache的方法:

adb shell
su
rm /data/dalvik-cache/system@app*.dex
rm /data/dalvik-cache/system@app*.odex
rm /data/dalvik-cache/system@framework*.dex
rm /data/dalvik-cache/system@framework*.odex

清空后第一次启动会比较慢,要有耐心。
部分恢复的话,只需要把相应的apk/odex文件复制到system/app下一般就可以了。

附我的精减清单:

blur_*, BlurContactSync
BlurAlarmClock(用正点闹钟替代了)
BlurEmail(注意:不包括BlurEmailEngine,据说这个删除会导致短信闪退)
BlurSNMessagingEngine
BlurTask
BookmarksWidget
Browser(用海豚浏览器替代了)
Calculator(用realcalc替代了)
ClockWidget
FakeBlurXmppApp(GMS包里有Gtalk客户端)
FriendFeed
LiveWallpapers
MagicSmokeWallpaper
MessageWidget
NewsWidget
PhotoWidget
Protips
QuickContactWidget
QuickSearchBox(用GoogleSearch替代,否则搜索键无效)
(Setup什么的其实也可以删除,不过万一需要恢复出厂状态时还是需要的)
Signed_*(建议保留RMVBPlayer)
SinaWeatherWidget
SocialMessaging
SocialShare
StatusWidget
StickyNoteWidget
UniversalInbox
VisualizationWallpaper
WorkContacts

5、刷GMS

GMS包也是参考白鸽的这个帖:http://bbs.dospy.com/thread-13319099-1-425-2.html
刷完登录google帐号,打开电子市场把需要更新的软件更新一下。我一般是会到电子市场的设置里打开自动更新及仅用WIFI更新。

到此为止,终于像一个正常的Android手机了。

6、免DockWebtop

自 带的webtop需要专用的坞站(MediaDock或LapDock)才能启动,如果没有的话,也可以用XDA大大们做的hack版的 webtopmod来启动。这个只要插上HDMI显示设备即可选择启动进入webtop,并且在手机上显示一个虚拟触摸板,还可以弹出虚拟键盘。
顺大便说一句,虚拟触摸板还是支持多点触摸的,操作方式类似MacBook的触摸板,这点比LapDock上那个只支持单点触摸的触摸板要爽得多。
还有,国行的Webtop是中文版的,省得自己去解决字体问题,这点比其它版本的机器好。

主要方法参考这个:http://forum.xda-developers.com/showthread.php?t=980193
不过这个贴里的MOD在2.3.5上都不能用或不好用。我用的是这个:http://forum.xda-developers.com/showthread.php?t=1144119
其中那个ORFR 4.5.2A。注意:其中那个dev版不用拷进手机。

具体方法简单来说就是:
备份DockService.apk/.odex和PortalApp.apk/.odex
然后删除两个odex,并用两个新的apk覆盖之,清空cache,重启即可。清空cache的方法见前面精减部分。

另外,有人说用这种MOD可以通过OTG线外接USB键盘鼠标,只要外加电源即可。但我试了是不行的,不但识别不到鼠标键盘,甚至都不显示充电状态。不知道是不是有些MOD可以。

7、全功能Ubuntu

不过Webtop里带的这个ubuntu是被MOTO精减过的,只有两个应用程序:Firefox和文件管理器。
其它所有的应用要么是Android版的,在屏幕上显示一个小窗口模拟手机运行Android应用,不过跟手机不同的是这里是以标签式多任务方式。
要么是Web版的,比如图中的QQ就是WebQQ,在Firefox里跑。
所以入了LapDock以后刷全功能ubuntu是必须的。

本安装方法需要手机已ROOT,但不需要解锁。

7.1、WebTop2SD(含config,Lxterminal,Synaptic安装)

安装方法见XDA的这个:http://forum.xda-developers.com/showthread.php?t=1119555

下载webtop2sd-2.0.1.apk,安装方法见原帖截图。

有几个注意事项:

首先是要把手机选项中显示屏关闭设置为永不关闭,然后在选项里把SD卡卸载掉。

然后是必须要有TF卡,因为要单独分区,所以不能装在手机内存里。

还有就是分区大小选择建议在4-5G左右,太大可能导致分区或复制文件失败。

最后,如果安装失败,请重启手机后再试。如果重试时发生分区选项不可选,请拔出TF卡到电脑上用工具清空分区,再格式化为一个普通FAT分区后,再插回手机。如反复失败,请进入Recovery进行双wipe。

另外,有些文档说跑webtop2sd之前需要安装busybox或lxterminal之类的,那是对于老版本的webtop2sd,至少这个2.0.1版本是不需要的,这两个东西它会自己装上。

成功安装webtop2sd以后把手机插到Dock上启动webtop,在屏幕下方可以看到webtop2sd config的图标,启动之。

弹出提示更新APT什么的,选择“是”。应该会有两个弹窗,都选择“是”。点完后会很久没反应,请耐心等待。

弹 窗关闭后点左边的Administrator,右边会显示需要安装Lxterminal和Synaptic。先点Lxterminal的Install按 钮,然后程序会没有反应,请耐心等待,其间可以试着点击下面的Lxterminal图标,如果显示一个黑框一闪即消失,则说明还没有装好,继续等待。直到 点击Lxterminal图标可以显示出一个命令行窗口时才说明安装完成。

然后点击Synaptic的Install按钮,同样耐心等待,其间可以在Lxterminal中输入sudo synaptic,如果说命令找不到,说明还没安装好,直到新立得可以正常启动。这里会提示软件包损毁什么的,不用理睬,退出程序。

7.2、WebTopScripts(含chromium安装)

要修复全功能ubuntu的软件包依赖关系,需要跑一个脚本。见XDA的这个:http://forum.xda-developers.com/showthread.php?t=1192488

使用从google code下载的最新1.7版,比如放在手机内存的download文件夹中:

cd ~
sudo tar -Pxvf /sdcard/download/webtopscripts-1.7.tar
cd WebTopScripts/
sudo ./setup.sh

然后对弹出的所有窗口全都选是,其中有些时候会非常慢,因为要下载很多东西,请耐心等待。有条件的话建议连一个国外的VPN,可以快很多。

另外,关于这个安装有一些个人建议,但不熟悉Linux系统的人不建议尝试:

首 先,这个脚本的原理是把所有的deb包从launchpad下载到WebTopScripts/packages目录下,但是如果中断后重新运行这个脚 本,它会把这个目录下文件全部删除,以确保其中不会有不完整的下载文件,但这样的话就会大大降低效率。所以,可以用 sudo vi setup.sh命令去编辑那个脚本,把其中rm什么packages的一句注释掉(在最前面加一个#),然后用迅雷去把所有deb包预先下载了放到 packages目录下再运行这个脚本,可以快很多。所有的deb包地址保存在WebTopScripts/scripts/config.txt文件 中。

正常情况下成功跑完这个脚本就能把apt完全修复了。然后就可以升级一下apt到最新版:

sudo apt-get update
sudo apt-get upgrade

完成以后就可以开始安装chromium浏览器。其实这个已经包含在webtopscripts1.7里了。

sudo WebTopScripts/install-chromium-browser.sh

同样的,如果没有用VPN或上述的预下载方法,这个过程会很慢很慢。

7.3、常用软件安装(thunar, eog, abiword, gnumeric, chmsee...)

这些都是apt里原本就有的,安装起来很方便,也可以用新立得装。不过这里还是以apt安装来介绍,因为命令行便于用文字说明,图形界面要截图太麻烦了。

sudo apt-get install awn-applets-c-extras thunar eog abiword gnumeric chmess openssh-client filezilla vinagre tsclient

对其中的软件作个简单的说明:

awn-applets-c-extras:一个系统主菜单程序,可以用AWN管理器把它添加到桌面栏上。
thunar:一个更快速的文件管理器。
eog:集成在文件管理器里的图片查看程序。
abiword:一个类似Word的文件编辑器。
gnumeric:一个类似Excel的电子表格程序。
chmsee:一个看CHM文件的程序。
openssh-client:SSH客户端。
filezilla:一个FTP客户端。
vinagre:支持VNC协议的远程桌面客户端。
tsclient:支持Windows远程桌面协议的客户端。

7.4、替换BusyBox(安装xz, coreutils, findutils, grep)

虽然webtop2sd已经把busybox装上了,但其中包含的工具程序功能相对弱一些,有一些功能选项不被支持,所以不是很够用。建议还是换掉一下比较好。

用预编译的二进制包安装可能也可以,不过覆盖掉busybox还是有一定风险的,所以我还是用源码编译另外安装了一份。因为新的程序在PATH里的位置在busybox前面,所以默认会用新的,只要把新的删除就恢复成busybox。这样安全一些。

在编译安装之前先把源码下载到内存的download文件夹中。其中XZ是一种新的压缩格式,在ubuntu 9.04的apt里还没有,所以也要下载源码安装一个。

XZ-utils最新版源码:http://tukaani.org/xz/xz-5.0.3.tar.gz
Coreutils最新版源码:http://ftp.gnu.org/gnu/coreutils/coreutils-8.15.tar.xz
Findutils最新版源码:http://ftp.gnu.org/pub/gnu/findutils/findutils-4.4.2.tar.gz
grep最新版源码:ftp://ftp.gnu.org/gnu/grep/grep-2.9.tar.xz

以下步骤依次是:编译前的准备工作,安装编译器和依赖库什么的,解压源码,分别编译安装——编译安装过程时间较长,可以开几 个lxtermnal窗口同时进行。

sudo apt-get install gcc libmpfr-dev
cd /osh/home/adas/
tar -xvf /sdcard/download/xz-5.0.3.tar.gz
cd xz-5.0.3/
./configure
make all
sudo make install
make clean
xz -d /sdcard/download/coreutils-8.15.tar.xz
tar -xvf /sdcard/download/coreutils-8.15.tar
tar -xvf /sdcarc/download/findutils-4.4.2.tar.gz
xz -d /sdcard/download/grep-2.9.tar.xz
tar -xvf /sdcard/download/grep-2.9.tar
cd coreutils-8.15/
./configure
make all
sudo make install
make clean
cd ..
cd findutils-4.4.2/
./configure
make all
sudo make install
make clean
cd ..
cd grep-2.9/
./configure
make all
sudo make install
make clean

注意:上面的操作是保存在 /osh/home/adas/ 目录下的。

因 为当前adas用户(webtop默认用户)的用户目录 ~/ (即 /home/adas ) 实际上是 /data/home/adas/ 而 /data 是Android系统的用户数据分区,总共只是1G左右的剩余空间,在这里放太多东西的话会导致Android系统崩溃然后循环重启。我第一次碰到这个问 题的时候重刷底包都救不回,还以为变砖了,后来才想到应该双WIPE解决。

而放到 /osh/home/adas/ 则不会有这样的问题,因为 /osh 是webtop2sd划出来的那个分区,至少有4-5G的空间,即使装完全功能ubuntu也还会有3个多G的剩余,通常够用了,而且就算是这个分区塞 满,最多webtop不能启动(可以通过重装webtop2sd解决),不致于搞坏Android系统。

7.5、访问Windows文件共享(samba)

samba是一个*nux下与windows文件共享兼容的服务。安装samba客户端,即可以linux下访问网络中Windows的共享文件,安装服务端则可以共享文件给Windows访问。因为手机资源有限,就不装服务端,只装一个客户端。

sudo apt-get install smbclient smbfs

安装完成后可以测试一下:

smbclient -L win_ip -U win_user

其中win_ip为你的windows电脑地址,win_user为windows电脑共享的用户名,比如你登录windows的用户名,某些版本不能使用administrator用户。

如果没有问题,会显示主机所用操作系统,主机名,共享名等信息。

注意:由于Atrix所用的Linux内核不包含cifs模块,所以暂时无法挂载samba目录,待找到这个模块再补充更新。

访问一个共享文件夹的方法如下:

首先在用户目录下创建一个挂载目录,然后把windows电脑上的网络共享文件夹挂载过来,之后就可以像本机文件一样使用了。

cd /osh/home/adas/
mkdir mnt
sudo mount -o rw,user=win_user,password=win_pass,uid=adas,gid=adas,dir_mode=0755,file_mode=0644,iocharset=utf8 //win_ip/share_folder mnt

然后mnt文件夹里就是windows电脑上的相应共享文件夹的内容了。

其中的参数解释如下:

rw:挂载为读写,否则为只读。
user=win_user:windows电脑的共享用户名
password=win_pass:windows电脑的共享用户密码
uid=adas,gid=adas:授权本机的adas用户使用,没有这个参数的话默认为root用户使用
dir_mode=0755,file_mode=0644:共享挂载后的默认目录和文件权限,不设也可,不过为了安全性考虑,建议设置
iocharset=utf8: 挂载后的编码方式。说到这个要吐槽一下,世界上包括英文版windows在内的绝大多数操作系统都已经是全面使用unicode编码了,但是因为中国有个 万恶的国标,所以中文版Windows是使用GB编码(GB2312, GBK, GB18030等),如果不加这个参数,中文文件名将会乱码。
//win_ip/share:window电脑地址及共享文件夹名

如不再访问共享,可取消挂载:

sudo umount /osh/home/adas/mnt

7.6、安装JAVA(OpenJDK, FreeMind)

自从SUN被Oracle收购以后不久,Oracle就宣布不再向Linux提供官方JAVA。也就是说没法通过apt安装sun-java了。而gcj之类的JAVA方案兼容性实在太差,还好还有OpenJDK这个好东西。

不 过直接apt安装OpenJDK也是不行的,因为它依赖tzdata-java这个包,而这个包的版本必须与系统的tzdata版本一致。但是因为 MOTO升级了系统的tzdata包,所以导致与apt里这个tzdata-java包版本不一致,安装不能。只好手工安装了(以命令行下载为例):

cd /sdcard/download/
wget http://launchpadlibrarian.net/65851361/tzdata-java_2011c-1_all.deb
sudo dpkg --root=/osh -i tzdata-java_2011c-1_all.deb
sudo apt-get install openjdk-6-jre
cd /usr/lib/jvm/java-6-openjdk/jre/lib/
mkdir fonts
cd fonts/
mkdir fallback
cd fallback
sudo ln -s /usr/share/fonts/truetype/DroidSans/DroidSansFallback.ttf

注意:上面最后几句是为了解决在JAVA中的中文显示问题,不作如此处理,中文在JAVA中将显示为方块。

装好OpenJDK以后就可以装个Java应用程序来试试效果了。以绘制思维脑图(MindMap)的工具FreeMind为例:

sudo apt-get install libjgoodies-forms-java simplyhtml libbcel-java libregexp-java libxpp3-java
cd /sdcard/download/
wget http://launchpadlibrarian.net/57682334/libjibx1.1-java_1.1.6a-2_all.deb
sudo dpkg --root=/osh -i libjibx1.1-java_1.16a-2_all.deb

以上准备工作完成以后,下载FreeMind 0.9.0到手机内存的download文件夹中:http://prdownloads.sourceforge.net/freemind/freemind-bin-max-0.9.0.zip?download

cd /osh/home/adas/
mkdir bin
cd bin
mkdir freemind
cd freemind
unzip /sdcard/download/freemind-bin-max-0.9.0.zip
chmod a+x freemind.sh

现在就可以用 ./freemind.sh 启动freemind了。不过为了方便使用,还是建议在主菜单里创建一个项目:

cd /usr/share/applications/
sudo vi freemind.desktop

上面这个vi可以换成任意一个你习惯的文本编辑器,比如gedit。然后输入以下内容后保存即可:

[Desktop Entry]
Name=FreeMind
Comment=FreeMind 0.9.0
Exec=/osh/home/adas/bin/freemind/freemind.sh
Icon=/osh/home/adas/bin/freemind/freemind.exe
Type=Application
Categories=Office;Application;

7.7、安装Pidgin

这个是挑战性最高的任务。在实践之前,我完全没有想到装这个东西会碰到这么多的麻烦事。

其实apt里本来是带着pidgin的,但是是2.5.5版本,太老了,连MSN和Gtalk都连不上,别的聊天工具可能可以连得上,但我又不用。

本来想源码编译安装最新的2.6.6,但是它依赖的包实在太多了,有好几十个,要是把全部源码找齐了编译实在是一件太庞大的工程。试过一次,折腾了好几天也没成功,作罢。

后来想装个gentoo prefix来解决自动依赖的问题,但是gentoo prefix的ARM版实在太out了,本身还有一堆的依赖问题无法解决,折腾了好几天,也没有成功。

再后来决定还是像chromium那样自己找预编译包安装。但是2.6.6可耻滴依赖最新版本的 libc6 包,而这个是系统核心文件,在手工升级以后,系统崩溃了……

最后总算找到可以在当前MOTO提供的 libc6 版本下可以运行的 pidgin 最高版本 2.6.4 ,然后手工找出所有依赖包,一一下载安装手修复依赖关系后,总算装上了。幸运的是这个版本可以顺利连接MSN和Gtalk了。

安装方法(以下下载链接均可以使用工具下载,不过这些文件要注意放到一个单独的文件夹里,不要和其它.deb文件放在一起):

sudo apt-get install libgtkspell0 libgadu3 libgstfarsight0.10-0 libmeanwhile1 libsilc-1.1-2
cd /sdcard/download/
mkdir pidgin
cd pidgin/
wget http://launchpadlibrarian.net/36664335/pidgin_2.6.4-1ubuntu3_armel.deb
wget http://launchpadlibrarian.net/51251576/libatk1.0-0_1.30.0-0ubuntu2.1_armel.deb
wget http://launchpadlibrarian.net/36664334/libpurple0_2.6.4-1ubuntu3_armel.deb
wget http://launchpadlibrarian.net/40396436/libstartup-notification0_0.10-1build1_armel.deb
wget http://launchpadlibrarian.net/36663981/pidgin-data_2.6.4-1ubuntu3_all.deb
wget http://launchpadlibrarian.net/35147232/libidn11_1.15-2_armel.deb
wget http://launchpadlibrarian.net/32936026/libperl5.10_5.10.0-24ubuntu4_armel.deb
wget http://launchpadlibrarian.net/40396006/libsilcclient-1.1-3_1.1.10-2build1_armel.deb
wget http://launchpadlibrarian.net/37033473/libzephyr4_3.0-1_armel.deb
wget http://launchpadlibrarian.net/32936028/perl_5.10.0-24ubuntu4_armel.deb
wget http://launchpadlibrarian.net/32936023/perl-base_5.10.0-24ubuntu4_armel.deb
wget http://launchpadlibrarian.net/32838159/perl-modules_5.10.0-24ubuntu4_all.deb
wget http://launchpadlibrarian.net/32303399/libxcb-atom1_0.3.6-1_armel.deb
wget http://launchpadlibrarian.net/32303403/libxcb-event1_0.3.6-1_armel.deb
wget http://launchpadlibrarian.net/32303401/libxcb-aux0_0.3.6-1_armel.deb
sudo dpkg --root=/osh -i *.deb

顺利的话,这样应该就能装上。如果还有报什么依赖问题错误,请跑一下:

sudo apt-get -f install

注意!!!这个时候[不要]按“Y”。先仔细看一下靠近最后有一行说明:安装了多少程序,升级了多少程序,将要卸载多少程序,还有多少程序不变。其中将要卸载的程序那一项必须是0才可以按“Y”,否则按“N”。然后运行:

sudo dpkg --root=/osh --configure -a

看看具体还有什么依赖性问题,然后一一手工修复,直到正确安装成功为止。

7.8、个人专用安装

sudo apt-get install vim vim-gnome ctags python-setuptools sqlite3 python-pysqlite2 python2.6-dev screen gettext python-docutils

cd src/byobu
./configure
make all
sudo make install
make clean

cd src/mecurial
python setup.py build
sudo python setup.py install
python setup.py clean

cd src/gevent
python setup.py --libevent ../libevent/ build
sudo python setup.py install
python setup.py clean

sudo easy_install sqlalchemy==0.6.8
sudo easy_install mako

推送到[go4pro.org]