我已离开 发表于 2009-6-19 10:06

z6制作刷机包教程系列之五     &am

今天讲下 怎么修改CG46和CG36

CG46也就是我们的字体单刷包,,,其实呢,,大家去百度一下 v8字体单刷包 z6字体单刷包 等等关键字 就会搜出来很多,,,既然别人写了CG46的教程我就不写了


当然有个 小小问题 ,,做好CG46了,,也打包成CG46.smg了,,,我们还需要用 WinHex 修改CG36.smg,,增加效验值,,,当然相比CG43和CG52就要难点了,,使用WinHex就以后用一个教程来讲


下面说说 CG36.smg,,前面我们说了这么解开 CG36.smg ,,如果你用linux的话,,我这里有一个 linux的 squashfs.2.1版本的,放在linux里面直接安装


如果你不知道squashfs是什么的话,,就算了


先看看 CG36的全貌,,, (个人不建议菜鸟 制作CG36)



大家一看,,这个怎么像我们手机里面的根目录呢...

它本来就是我们手机的根目录


第一个文件夹 bin

这个文件夹里面全部都是命令,,什么cp mv rm sed grep 都在里面,,但是为什么没有tar gzip dirnameswapon swapoff
我们过去用tar 就要使用busybox tar 用gzip 就用 busybox dirname 用 dirname 就用busybox dirname,,很麻烦
现在我们就需要增加 tar gzip dirname swapon swapoff 命令

打开Cygwin,,进入CG36/bin文件夹,,用我的电脑为例

cd /home/Administrator/CG36/bin
cp busybox /bin
ln -s /bin/busybox tar
ln -s /bin/busyboxgzip
ln -s /bin/busyboxdirname
ln -s /bin/busyboxswapon
ln -s /bin/busyboxswapoff
ln -s /bin/busyboxmkswap
ln -s /bin/busyboxtime
ln -s /bin/busyboxfree
如果你还需要增加什么命令,,,你们要去查一下,,busybox里面有哪些,,,如果busybox里面没有的命令,,建立出来就没有作用,,大家可以用telnet连接手机,,输入 busybox 查看busybox里面有哪些命令

OK了,,,(就不截图了,,因为主要CG36是针对高手制作,,,不用整了那么傻瓜式)


第二个文件夹 usr

CG36/usr/SYSqtapp/phone/Device_Connect.wav这个是 java提示音,,可以取消了,,(把文件改名,,或者删除)
CG36/usr/SYSqtapp/am/bin/am 这个是官方主菜单,,默认没有图标的,,我们用2级菜单的am替换,,那么开机后默认就是2级主菜单
CG36/usr/bin 这个里面是很多的命令,,大家把showQ系统的所有命令复制到里面,,以后编写一些shell程序就不用 过去的那个头文件了

第三个文件夹 mmc

默认里面一个有个mmca1文件夹,,如果需要挂载第二分区,,就在里面建立几个文件夹,,比如mmca2 mmca3 mmca4 mmca5 等等

第四个文件夹 etc

第一个文件 CG36/etc/profile (bash的脚本)

官方的是这样的...
PATH=\"/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games\"
修改一下
PATH=\"/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/ezxlocal/LinXtend/bin:/ezxlocal/LinXtend/usr/bin\"
还有一个,,我们使用telnet的时候,,输入showQ,,会发现telnet中提示 QTDIR 是否设置正确??
所以我们可以在 profile中增加一行代码,,设置一下 QTDIR

if [ -f /etc/initservices/ezx_flexbit/ezxenv.sh ] ; then
. /etc/initservices/ezx_flexbit/ezxenv.sh
fi

OK了 ,,这个/etc/initservices/ezx_flexbit/ezxenv.sh就是专门来设置QTDIR的

第二个文件 CG36/etc/fstab

这个文件是用来 开机挂载分区的,,,打开看一下

/dev/mtdblock/user /ezxlocal jffs2 noatime,sync,noexec,nodev,nosuid 0 0
/dev/mtdblock/setup /usr/setup squashfs ro,noexec 0 0
/dev/mtdblock/secure /usr/securesetup squashfs ro,noexec 0 0
/dev/mtdblock/pds /etc/pds yaffs noatime,sync,shred,noexec,nodev,nosuid 0 0
/dev/mtdblock/resrc /usr/data_resource squashfs ro,noexec 0 0
/dev/mtdblock/lang /usr/language squashfs ro 0 0
/dev/mtdblock/mass_storage /mnt/msc_int0 yaffs noatime,sync,noexec,nodev,nosuid 0 0

这个就是分区的挂载 ,,里面有很多的noexec ,,就是这个分区 禁止执行linux程序,,,我们要把noexec删除
其次,我们可以自己增加,,我的增加了一个 开启内存卡第4个虚拟内存分区,,看下我修改后的

/dev/mtdblock/user /ezxlocal jffs2 noatime,sync,nodev,nosuid 0 0
/dev/mtdblock/setup /usr/setup squashfs ro, 0 0
/dev/mtdblock/secure /usr/securesetup squashfs ro 0 0
/dev/mtdblock/pds /etc/pds yaffs noatime,sync,shred,nodev,nosuid 0 0
/dev/mtdblock/resrc /usr/data_resource squashfs ro 0 0
/dev/mtdblock/lang /usr/language squashfs ro 0 0
/dev/mtdblock/mass_storage /mnt/msc_int0 yaffs noatime,sync,nodev,nosuid 0 0
/dev/mmca4 swap swap defaults 0 0
OK了,,这个文件修改完毕

第三个文件 CG36/etc/initservices/startup文件夹的修改

这个文件夹是我们开机后最先执行的程序,,如果要实现开机就挂在第二分区,,等等,,就要在里面修改和增加内容,,截个图




怎么全部都是快捷方式呢,,,

这些快捷方式都是连接到 CG36/etc/initservices/services 里面的,,,

我们回到startup文件夹
第一个文件 15mountall对应 services里面的mountall.sh
这个里面的文件很多都是自读的,,用uedit32修改不了,,首先在 cygwin中 输入

cd /home/Administrator/CG36/etc/initservices/services
chmod 777 *

修改了读写权限了

在mountall.sh里面主要增加一些 复制文件,,,特别是ezx_idle.cfg如果我们的CG43里面的ezx_idle.cfg是快捷方式,,如果在CG52的开机启动中复制的话,,开机后,,配置表就会只出现3个选项,,还需要重启才可以生效,,如果在 mountall.sh里面复制的话,,就不会出现这个bug

增加一段代码

if [ ! -f /ezxlocal/download/appwrite/setup/ezx_idle.cfg ] ; then
if [ -f /usr/data_resource/oss/ezx_idle.cfg ] ; then
cp -f /usr/data_resource/oss/ezx_idle.cfg /ezxlocal/download/appwrite/setup/ezx_idle.cfg
else
cp -f /etc/initservices/ezx_flexbit/ezx_idle.cfg /ezxlocal/download/appwrite/setup/ezx_idle.cfg
fi
fi

我在CG36/etc/initservices建立了一个ezx_flexbit文件夹 ,,放了很多开机需要复制的文件
上面的代码什么意思,,如果你看不懂,,就不要去修改CG36了,,因为CG36里面全部都是一些命令

第二个文件 16mot_security 对应services里面的mot_security.sh


这个文件是增加了mount的权限,,,开机后我们会无法使用mount,,可以删除这个文件,,不然的话,,下面我们的第二分区无法挂载

现在我们需要在startup里面增加3个文件 17a_mount_mmc和 17n_mount_yuerstuff和17r_cp_file_mount_ttf


这个3个文件都是有顺序的,为什么我都用 17开头,,还要用 17a 17n 17r 等等,,因为在 startup文件夹里面的文件是按照 顺序执行的

我们截个图,,看看,,这3个文件的内容









手机内存第二分区还需要跟 17mountNand配合 也就是 services的mountNand.sh
打个比方,,,mnt目录剩余50M,,官方的mountNand.sh会默认建立 49M的手机内存,,如果再去建立20M的 手机内存第二分区的话 ,,是不是就出现bug了
所以我们需要修改 mountNand.sh ,,建立手机内存的时候要减去 20M
对于V8-512的话,,如果建立手机内存第二分区100M 就需要减去100M才对

其次官方的默认挂载手机内存用的 noexec
MOUNT_OPTIONS=\"-t vfat $VFAT_IMAGE $VFAT_MOUNT_PT -o sync,shortname=mixed,utf8,loop,uid=2000,gid=233,noexec,nosuid,nodev\"
这样的话我们手机内存的程序就不能用了,,所以删除noexec
MOUNT_OPTIONS=\"-t vfat $VFAT_IMAGE $VFAT_MOUNT_PT -o sync,shortname=mixed,utf8,loop,uid=2000,gid=233,nosuid,nodev\"
还有修改61mountMMC也就是services的mountMMC.sh(挂载内存卡)
里面同样的 用了noexec
mount -t vfat /dev/mmca1 /mmc/mmca1 -o uid=2000 -o gid=233 -o utf8 -o shortname=mixed -o umask=002 -o noexec-o noatime
同样的删除noexec
mount -t vfat /dev/mmca1 /mmc/mmca1 -o uid=2000 -o gid=233 -o utf8 -o shortname=mixed -o umask=002 -o noatime

其余的呢,,就有2个注意的地方
我的挂载手机内存第二分区的话 挂载到 /ezxlocal/download/yuerstuff 为什么不挂在到 /ezxlocal/download/mystuff2 ,,因为我们连接电脑后,,,.需要重新挂载手机内存,,程序会检查mount是否有 /ezxlocal/download/mystuff 字段,,如果有就退出 ,,
如果手机内存第二分区为 /ezxlocal/download/yuerstuff2 连接电脑后,,手机内存就会挂载不上去,这就是bug,,我才改名为 /ezxlocal/download/yuerstuff

第二个呢,,就是连接电脑,,我们会发现手机内存的程序可以使用,,但是内存卡的不可以使用了,,所以我们需要在 mountNand.sh增加一段话

mount -t vfat /dev/mmca1 /mmc/mmca1 -o uid=2000 -o gid=233 -o utf8 -o shortname=mixed -o umask=002 -o noatime
mount | grep '/mmc/mmca1.*noexec'
if [ $? -eq 0 ]; then
mount -o remount,rw,exec /dev/mmca1 /mmc/mmca1
fi

这样的话,,连接电脑后,手机内存和内存卡都可以用了 (过去我们用守护进程,会让手机变的卡点,,,现在不用了)



我想呢,,,,说这么多,,,菜鸟基本上 是 一无所知,,,高手也会觉得头痛,,,我做CG36,,几天之内,,做了30多个,,,做一个刷一次机,,,真的是累啊

我想了一下,,,其实我还是把这些程序发出来,.,,不然你们修改CG36会苦恼
当然现在有一些人 把别人的成果改个名字就是自己的,,当然这种人关键是不能去理解我的辛苦,,,,想问一句既然大家都是作包人,,,,都明白作包的辛苦,,,何必互相偷盗呢???大家都尊重别人的成果多好呢???
不过还是加个权限500,,,主要是让我们论坛的人气高点,,,理解一下


这个附件包含CG36/bin和CG36/etc 可以直接替换官方的CG36的/bin和/etc 很简单的
注意看下那个 CG36/etc/initservices/startup/16mot_security 这个文件如果没有删除的话,,挂载第二分区会失败,,,所以要手动删除这个文件
我把CG36里面最难做的和最关键的都发出来了,,,
对于v8_512的需要修改里面的手机内存第二分区的大小,,,因为z6的手机内存是60M,,我分为 手机内存第二分区20M的,,,所以呢,,,v8_512的要自己去改下程序
第一个修改17mountNand 其次修改 17n_mount_yuerstuff 修改就不用我教了嘛,,,只是修改下数字,,我的手机内存第二分区是20M ,也就是20480 如果你想把512的设置为200M或100M,,就把里面的20480 改成204800或者102400 很简单的 (手机里面一般是用KB作为单位,,而不是M ,,所以是20480)

里面有些文件是 快捷方式,,如果用 windows的rar或者7z解压会出问题 ,,在cygwin中 输入 tar -zxvf z6_v8_CG36.tar.gz 就解压出来了


对于CG36就基本上结束了,,,比较难的东西,,我都帮你解决了,,,,简单的东西还是要靠你自己去修改嘛

下一篇讲 所有CG的快捷方式建立





今天是2009年7月1号,面对论坛今日出现的危机,面对菜鸟的很多郁闷,,以后免费下载我的附件

dead_child 发表于 2009-6-19 10:09

Re:z6制作刷机包教程系列之五    CG46.smg和

偶占个沙发先

suange 发表于 2009-6-19 10:11

Re:z6制作刷机包教程系列之五    CG46.smg和

什么运气啊
呵呵

g277344401 发表于 2009-6-19 10:20

Re:z6制作刷机包教程系列之五    CG46.smg和

 优势你很强啊!!1

g277344401 发表于 2009-6-19 10:20

Re:z6制作刷机包教程系列之五    CG46.smg和

来看看不错啊!

_黑。字 发表于 2009-6-19 10:26

Re:z6制作刷机包教程系列之五    CG46.smg和


什么东西。。?

dead_child 发表于 2009-6-19 10:27

Re:z6制作刷机包教程系列之五    CG46.smg和

再顶~~

huichen02 发表于 2009-6-19 11:09

Re:z6制作刷机包教程系列之五    CG46.smg和

tangzee 发表于 2009-6-19 11:16

Re:z6制作刷机包教程系列之五    CG46.smg和

Z6-璨枫 发表于 2009-6-19 12:03

Re:z6制作刷机包教程系列之五    CG46.smg和

觉对支持!
页: [1] 2 3
查看完整版本: z6制作刷机包教程系列之五 &am