批量删除软链接

find -type l -delete [PATH]

上面这条命令就可以将[PATH]路径下的所有软链接都删除掉。

用的是find这个Linux下非常实用的命令,type参数限定了文件类型为l(links),加上-delete删除参数就可以实现找出所有软链接并删除。

如果是要删除失效的软链接,需要加上一个-L参数,表示追踪软链接:

find -L [PATH] -type l -delete

我只所以需要删除全部的软链接是因为现在制作W22PRO的ROM遇到一个小麻烦,因为没有Bootloader和内核源代码,所以不能make otapackage生成zip刷机包,只好直接拿编译出来的system目录操作,但是这个目录下包含了太多软链接了,直接拿来压缩会得到一个巨大的zip包,所以必须先删除软链接(这些软链接将会通过刷机脚本updater-script重新生成),终于Google到了上面这条命令,非常实用,特此记录下来。

编译蓝魔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,不然的话不能正确调用一些共享依赖库会编译出错。

SoftMaker Office 2012 for Linux

一家德国的Office企业现在提供Linux下的办公套件了!现在还有30天免费试用(不用白不用哈)!SoftMaker Office类似于国内的永中Office和WPS Office,目前该套件包含文字处理、表格处理、演示文档处理三个程序。相信德国人严谨的作风,加上这是一套付费商用软件,质量应该还是靠谱的。

网址传送:http://www.softmaker.com/english/ofl_en.htm

系统要求:不限发行版,要求PC平台(x86架构的CPU),Glibc版本在2.2.5(含)以上。

提醒一下的是,虽然提供了64位的二进制包,但是这个软件是32位版本,也就是64位系统上会要装ia32的相关组件(RPM/DEB都会自动检查依赖关系,不用担心)。

就这三个应用程序,图标还不错,但是打开就……丑爆了……

丑翻了,此应用程序显然不是GTK+也不是Qt写的!

随后测试了一下几个docx文档,字体名字可能需要自己映射一下,不然打开文档后中文字要设置字体才能显示。试了几个英文文档,效果也只能说一般。个人觉得,还是用WPS吧……

制作蓝魔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提供的服务完成的。

Fedora下设置Samba共享NTFS分区文件笔记

今天折腾了好久,终于在Fedora下成功设置好了Samba服务,并且能够共享NTFS分区的文件了。

smb.conf的设置大家自行Google,这里只是说一些非常值得注意的地方。

首先为了能正确共享软链接,[global]字段内必须有如下三行:

        follow symlinks = yes
        wide links = yes
        unix extensions = no

第一行是让samba服务器识别软链接的指向,第二行是允许目标在非共享目录下,第三行no表示将软链接解析的工作由Samba服务器而不是客户端完成。

可是设置后发现死活不能识别,后来原因找到了……因为文件名不符合常见的UNIX规范(也就是没有空格和特殊符号),里面有一个’符号,Linux下用”转义表示了,貌似Samba不能处理这类路径,所以没有显示出来。

后来我改了名字,能看到了,但是不能访问,感觉像是没有权限。仔细一想NTFS分区又没有像EXT3/4这样能设置用户权限的,Google果然发现了几个解决办法,其中一种是将Samba访问用户设置和root一样的权限,我这里是添加了一个名为Guest的专门用来访问Samba共享的用户,自认为比较安全。因为禁用了它的Home目录,也让其无法登录本机,所以给了root权限以便访问NTFS分区。

修改/etc/passwd文件,我这里把Guest用户改成了如下样子:

Guest:x:0:0::/dev/null:/usr/bin/false

0:0这里表示和root用户一样的权限,/dev/null是家目录,/usr/bin/false是让其无法从控制台登录。

当然如果你没有设置用户的话,还是先useradd添加一个专门用来共享的用户吧,这样比Samba改为Share暴露在网域中要安全多了。

设置Samba共享,就能用Android等移动设备直接访问电脑上的共享资源(电影、电视剧、音乐等),不用一部一部拷贝到机器上来播放了,省力~

Rekonq、Konqueror也能听QQ音乐,登录支付宝

突然只是觉得国内的网站对Linux支持还是不够好,不够细化。

例如QQ音乐和支付宝。

QQ音乐明明就一个HTML5技术做的Web音乐播放器,检测浏览器标识还不如检测是不是支持HTML5 mp3格式的audio类型,rekonq、konqueror(要用webkit渲染)把浏览器标识改为Chrome就能正常播放QQ音乐了。当然类似的像qupzilla这些都是可以的。不过要装好gstreamer的插件,不然不支持mp3还是播放不出来。

支付宝的控件就更有意思了,支持Linux的话就是一个NPAPI插件,很多Linux浏览器都支持加载这类插件,为什么一定要限制用Firefox、Chrome、Opera(我之前用Opera还不行)呢?今天Firefox在系统升级后就有问题启动不了,用的rekonq,后来登录支付宝不成功,我抱着试试看的心态改了浏览器标识为Firefox——结果就成功了(当然前提是系统已经装了Alipay的Linux插件)……

在HTML5格式的支持上,Linux系统可以说绝对超前于Windows,虽然这些小众的浏览器功能不如FF、Chrome这些强大,但对基本的插件和HTML5的支持还是很好的。检测浏览器标识来代替对功能支持的检测真是X%#%#$%^省略千言!

蓝魔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. 修复镜像下载见蓝魔之家论坛帖子

少年,在Android平板上编程吧(Python篇)

  1. 在Play商店搜索安装DroidEdit,当然你要是下载盗版的DroidEdit Pro我也无所谓。
  2. 然后下载并安装Python3ForAndroid (是时候从Python2转到Python3了)
  3. 确认平板联网,在平板上打开Python3forAndroid,等它获取最新的版本后,点击Install按钮然后会自动下载一些压缩包并解压安装好Python3 for Android(我装了之后Python的版本是3.2.2)
  4. Play商店安装Terminal(Linux下用终端习惯了,不装这个还真不爽)
  5. 下载bash (XDA帖子附件) ,解压,将里面的bash用R.E.管理器复制到/system/bin/下,并修改权限使其可执行。
  6. 打开Terminal,设置终端shell使用bash而不是系统内置的sh
  7. 如果有空,可以安装一个完整版的busybox,替换/system/xbin下的阉割版,并用alias命令让chmod、cp、mv、ls等常用的Linux命令改成完整的busybox版而不是Android阉割版。
  8. 最后一步比较重要,关系到能否在终端下简单的运行Python命令,下载我给的这个文件(盛大网盘已死)
  9. adb push python3 /system/bin
  10. 然后用R.E.管理器修改python3权限使其可执行

在Terminal里测试python3命令吧,如果出现下图所示界面就成功了。图已破,推他已死。