Category: 作業系統

  • 制作蓝魔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命令吧,如果出现下图所示界面就成功了。图已破,推他已死。

  • 51-android.rules详解

    贴出我的51-android.rules(/etc/udev/rules.d/下)

    SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e22", SYMLINK+="android_adb", MODE="0666"

    主要说说里面idVendor和idProduct的值,其它的照抄就可以了,但是这两个值和你的Android设备有关,我这里的设备是蓝魔W22PRO。

    设备打开USB调试,插上USB连接到你的Linux PC,在终端里输入lsusb

    你可以找到类似于下面这一行的输出结果:

    Bus 001 Device 008: ID 18d1:4e22 Google Inc. Nexus S (debug)

    这里ID后面18d1就是idVendor的值,而4e22就是idProduct的值。

    当然,你要是问怎么确定Android设备是哪一行这种没营养的问题……那好,你不会连USB之前lsusb然后连接后再lsusb看看啊?

    注记:这是本人亲测在Fedora 17通过的,网上看到的一些我用了都没效果,希望这篇文字对各位有点作用,至于编完这个文件要chmod +x这些应该不用说了吧?对了,udev要重载规则,然后adb的server也要重启一下(重新插拔usb的话就不用重启adb了)。

    补充:

    udev规则重载通过下面这条命令:

    sudo udevadm control --reload-rules