线刷是用fastboot,一般都是直接刷镜像,由uboot以直接写入闪存的办法把镜像直接写到闪存对应的位置(或者说分区)。
卡刷一般是在recovery里进行的,有直接刷镜像的比如kernel部分,但像system都是挂载system分区后再个别的更新里面的文件(差分或者直接覆盖),而不是像线刷那样把整个system镜像重刷一次。如果是通过打二进制补丁差分更新的话(绝大部分官方ota包的做法),就要求被更新的文件和出厂时一样,否则就会失败,这是ota失败的原因。
所以线刷包实际一般就是包含了fastboot程序和各个系统镜像以及一个可执行的脚本的包,用户直接运行那个脚本,脚本调用fastboot来刷。
而卡刷包有比较复杂些的目录结构,除了用来更新的文件外,也包括一个可执行文件和脚本,但这两个脚本是给recovery来用的,而不是用户。