kk Blog —— 通用基础

date [-d @int|str] [+%s|"+%F %T"]

GT-S5830刷机教程

ROM

(推荐) 三星 S5830 2.3.4 ROM (国行ZCKPB) http://dl.dbank.com/c0e5aato8l

2.3.6 ROM S5830DXKT7.tar.zip http://dl.vmall.com/c0016n1hza

工具

Odin Multi Downloader v4.38.exe http://dl.dbank.com/c0ijy8bqrr 记得装USB驱动

教程

[贴自] http://samsungbbs.cnmo.com/thread-10414540-1-1.html

1

按HOME + 电源键进入recovery模式,双wipe

2

电源键+HOME键+音量调节下键 , 两次出现三星log后会进入downloading模式

3

将手机与电脑通过USB数据线相连,然后运行刷机平台Odin Multi Downloader v4.38.exe

1
2
3
4
5
  
  CSC:全称Customer Specific Customization,里面包含的是运营商数据,不同ROM对应的区域不一样,所以CSC文件也不会相同。
  PDA:里面是CODE、ANDROID本身和所有的软件运行依靠的代码。
  PHONE:又称为MODEM,就是基带的意思,是所有通讯模块正常运行的依靠,机带情勿要随便升级替换。
  OPS:其实不是刷到手机中的文件,而是一个奥丁工具用来刷机的配置文件, 里面记录的是手机各个分区的信息。刷机的时候,奥丁依据这个配置将rom内的分区镜像恢复到指定分区中。如果勾选了“重新分区”,则依据这个配置重新分配分区。

4

选择对应的包

1
2
3
4
5
1、点击OPS命令按钮,浏览选择 Cooper_v1.0.ops    
2、点击BOOT命令按钮,浏览选择 APBOOT_S5830****_CL382966_REV03_user_low_true.tar  
3、点击Phone命令按钮,浏览选择 MODEM_S5830****_CL382966_REV03.tar  
4、点击PDA命令按钮,浏览选择 CODE_S5830****_CL382966_REV03_user_low_true.tar  
5、点击CSC命令按钮,浏览选 CSC_GT-S5830S5830O****_CL382966_REV03_user_low_true.tar  

注意:可以只有OPS和PDA,PDA里面也可以只有boot.img。替换别的包刷的话最好保持原来包文件名的部分前缀,不然会提示“invalid image type”


独立包的刷包方式

因为独立包只有一个,看起来还是比较简单的。只用放一个包就好了。
在刷之前确认格式是不是tar格式,名称里面有没有home。

如果有在双击这个ROM,可以进入到压缩包里面,看到这些文件。基本上确认这个包可以刷了。

OPS放好之后,看这里。这3个勾一定打上,

3个勾打上之后,就只有这里面才能放包了,其他都不行


刷好之后是这样

samsung rfs、tar包

boot.img可以按照 这里 的方式编辑

GT-S5830分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
bml1 mibib
bml2 qcsbl
bml3 oemsbl
bml4 amms
bml5 ????????FSR_STL 
bml6 ????????FSR_STL / Empty|Empty RFS Partition???
bml7 arm11boot
bml8 Boot.img
bml9 Recovery.img
bml10 Looks like kernel init?????Contains this string:"em=330M console=NULL hw=5 fbaddr=0xb0000"
bml11 Empty partion no partion table?? Whole file FF
bml12 System.rfs
bml13 Data Partition
bml14 Cache Partition

把所有要打包进ROM的文件都复制到这个文件夹内;
比如:这些刷机文件包括:boot.img

1
2
3
$ tar -cf NewRom.tar boot.img
$ md5sum -t NewROM.tar >> NewROM.tar
$ mv NewROM.tar NewROM.tar.md5

第一句是TAR打包,第二句是md5签名,第三句是改文件名,可以省略。

NewROM.tar.md5就是最后生成的,可供刷机用的ROM了!

编辑 rfs

挂载 RFS文件factoryfs.rfs 为一个磁盘:

1
2
# su
# mount –o loop factoryfs.rfs System

进入“磁盘”System目录,你就可以看到factoryfs.rfs解包后的所有内容。

修改好/System的内容后,在超级用户终端执行下面的语句卸载该“磁盘” ,这个操作等价于“打包”过程。

1
# umount System

查看所有(挂载、未挂载)的分区

blog.chinaunix.net/uid-22731254-id-3222708.html

下面的例子都是围绕/system目录。

使用df命令查看

1
2
3
4
5
6
7
8
9
10
11
12
13
# df
df
Filesystem Size Used Free Blksize
/dev       197M 64K   197M 4096
/mnt/asec  197M 0K    197M 4096
/mnt/obb   197M 0K    197M 4096
/system    295M 245M  50M  4096
/data      755M 26M   728M 4096
/cache     188M 4M    184M 4096
/HWUserData 2G 1024K  2G   32768
/cust      59M 14M    44M  4096
/mnt/sdcard 7G 753M   6G   32768
/mnt/secure/asec 7G 753M 6G 32768

看到/system分区有295MB的大小。

接着查看/proc下的partitions

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# cat /proc/partitions
cat /proc/partitions
major minor #blocks name

179    0    3817472 mmcblk0
179    1    20      mmcblk0p1
179    2    300     mmcblk0p2
179    3    133120  mmcblk0p3
179    4    1       mmcblk0p4
179    5    12288   mmcblk0p5
179    6    196608  mmcblk0p6
179    7    4096    mmcblk0p7
179    8    3072    mmcblk0p8
179    9    4096    mmcblk0p9
179    10   3072    mmcblk0p10
179    11   3072    mmcblk0p11
179    12   393216  mmcblk0p12
179    13   786432  mmcblk0p13
179    14   4096    mmcblk0p14
179    15   8192    mmcblk0p15
179    16   20480   mmcblk0p16
179    17   4096    mmcblk0p17
179    18   81920   mmcblk0p18
179    19   2154496 mmcblk0p19
179    32   7761920 mmcblk1
179    33   7757824 mmcblk1p1
31     0    4096    mtdblock0

其实,可以在/proc/mounts下面看的更直接。。。

ME722(A953)刷机教程

ROM

二楼刷机包 http://bbs.gfan.com/android-2448659-1-1.html

这里的可以直接下 http://bbs.gfan.com/android-4905385-1-1.html

这个包还行 http://115.com/file/bw6u2lnn

工具

RSDLite5.5汉化版.rar http://dl.dbank.com/c05d7hs3mo

记得装USB驱动

教程

[贴自] http://moto.zol.com.cn/209/295_2084002.html

1

按住X键再按开机键,这时他会出现一个小机器人,按@键 进入recovery模式,双wipe

2

手机关机状态先按住拍照键+音量增大键+开机键 进入bootloader模式

3

把手机与电脑通过USB线相连,并打开RSD刷机工具,如图

4

然后选择刚才下载的底包导入,导入后按start开始刷机,直到手机自动开机,开机后请请再次关闭手机,之后再开机。


http://http://anzhuo.paojiao.cn/android/allinfo/1/56998.html

首先我们要明确,就是BL等级一旦升上去,就再也不能降下来了。

如果降刷,导致的必然结果就是黑屏不能开机,甚至连红色LOGO都看不到,也看不到开机键+音量上的刷机界面。

遇到这种情况,只能通过用RSD盲刷BL和原来一样的底包,来重新开机。

盲刷的具体方法是:

1.拔下电池

2.按住音量加,同时放入电池

3.连接数据线

4.打开RSD,直到RSD识别到手机

5.刷你上次刷的底包去吧。

完整版刷android内核及定制内核模块攻略

blog.sina.com.cn/s/blog_706845a5010129da.html

终于很恶心的把流程走通了

首先列出需要的东西,从网上搜一下就能搜到了:
———源码类———–
1. kernel source
2. .config文件

———工具类———–
1. 交叉编译器arm-eabi-
2. fastboot,adb等android工具
3. mkbootimg用于解包boot.img使用

———脚本类———–
1. repack-bootimg.pl //不一定需要
2. unpack-bootimg.pl

下面是完整版刷内核及内核模块攻略(基于恶心的Galaxy Nexus)
1. 配置交叉编译器等各种环境

1)下载交叉编译器:
$ git clone https://android.googlesource.com/platform/prebuilt

2)写入环境变量中:
export PATH=“/home/xxx/android-toolchain/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH”

2. 编译内核

1)修改内核根目录下的Makefile(一劳永逸的方法…):

1
2
3
4
#ARCH           ?= $(SUBARCH)
#CROSS_COMPILE  ?= $(CONFIG_CROSS_COMPILE:"%"=%)
ARCH            ?= arm
CROSS_COMPILE   ?= arm-eabi-

2)从手机目录: /proc/下找到config.gz压缩文件,拿出来解压成.config,复制到内核源码根目录下
很多情况下手机中没有config.gz,我们刷了N多的rom加内核才找到一个能正常跑并且里面有这个文件的内核…
但是找到了可以一直使用,即使换了别的rom或者内核也没关系
实在没有的话,看第三步。
3)如果2)成功了,执行make menuconfig,看看该配置是否支持netfilter,如果不支持安下面的选上

1
2
3
To use netfilter
Networking support  -> Networking options ->  Network packet filtering framework (Netfilter)
Choose related choices

如果找到config.gz,执行make tuna_defconfig(这个是默认的德州仪器CPU的配置文件,理论上可用,但是我没有成功),然后同样看netfilter配置
4)执行make -j 2
5)完成编译,得到arch/arm/boot/zImage文件

3. 将zImage扔到手机中

1)从手机中拿出boot.img,或者从刷入手机的rom或kernel中拿也可,总之拿到一个手机在用的boot.img
2)执行前确保各个脚本permission正确,将boot.img,zImage,脚本unpack-bootimg.pl,可执行文件mkbootimg,放于同一个目录下。
3)执行脚本com.sh:(com.sh内容如下),用于将zImage打包进boot.img形成我们自己的kernel:newtestboot.img

1
2
3
4
5
./unpack-bootimg.pl boot.img
cd boot.img-ramdisk/
find . | cpio -o -H newc | gzip > ../ramdisk-repack.cpio.gz
cd ..       
./mkbootimg --kernel zImage --ramdisk boot.img-ramdisk/ramdisk-repack.cpio.gz --base 0x30000000 -o newtestboot.img
4. 手机进入bootloader模式,利用fastboot刷入newtestboot.img

1)$ adb reboot bootloader
2)$ fastboot boot newtestboot.img
若出现permission denied,waiting for devices之类的问题,执行
$ sudo vim /etc/udev/rules.d/51-android.rules
在规则中添加
若出现permission denied之类的错误,执行
$ sudo vim /etc/udev/rules.d/51-android.rules
在规则中添加:

1
2
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
    SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
这个的作用是将usb权限以及配置与adb或者fastboot配对,特别是fastboot由于是通过usb线刷的,必须保证usb口是匹配的。
5. 此时不出意外就是完成了内核刷入,下面将内核模块加载进去就简单了
6. 编译内核模块

1)利用我们的内核源码作为头文件,交叉编译器作为编译器来编译内核模块,Makefile文件写法如下:

1
2
3
4
5
6
7
8
9
10
11
KERNELDIR := /home/carelife/android_icecream/android_kernel/CyanogenMod
PWD :=$(shell pwd)
ARCH=arm
CROSS_COMPILE=arm-eabi-
CC=$(CROSS_COMPILE)gcc
LD=$(CROSS_COMPILE)ld
obj-m := netCatch.o
modules:
        $(MAKE) -C $(KERNELDIR) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) M=$(PWD) modules  
clean:
        $(MAKE) -C $(KERNELDIR) M=$(PWD) clean
7. 加载KM
1
2
3
4
  1)$ adb push /your_kernel_module_position /sdcard/
  2)$ adb shell
  #cd sdcard
  #insmod your_kernel_module_name
8. 查看debug信息

1)$ adb shell dmesg
这个方法的实质是从手机IO缓存中读取print信息,输出到电脑屏幕上,所以是一个固定时间更新的静态查看信息的方法,十分不利于调试
2)等待寻找其他debug方法…