コンピュータや音楽の事書いてます

sc03e make_rooted_systemを読み解く

https://github.com/kbc-developers/release/wiki/common

普段、世話になってばっかりで、仕組みについて全く理解していない。少しでも中身を解っていれば、トラブル対応、自分流カスタマイズの役に立つと思う。

suとSuperuserを_FACTORYFS_DIR内に配置するところ

func_install_su_type1()
{
	_FACTORYFS_DIR=$1
	echo ">>>>> su package insall..."
	sudo cp -av sed/su $_FACTORYFS_DIR/xbin/su
	sudo cp -av sed/Superuser.apk $_FACTORYFS_DIR/app/Superuser.apk
	sudo chown 0.0 $_FACTORYFS_DIR/xbin/su
	sudo chmod 6755 $_FACTORYFS_DIR/xbin/su
	sudo chown 0.0 $_FACTORYFS_DIR/app/Superuser.apk
	sudo chmod 644 $_FACTORYFS_DIR/app/Superuser.apk
}

# -------------------------------------------------------
func_install_su_type2()
{
	_FACTORYFS_DIR=$1
	echo ">>>>> su package insall..."
	sudo cp -av sed/SGS3RootingApp.apk $_FACTORYFS_DIR/app/SGS3RootingApp.apk
	sudo rm $_FACTORYFS_DIR/bin/fsslcmnd
	
	sudo cp -av sed/busybox_mount $_FACTORYFS_DIR/bin/busybox_mount
	sudo chown 0.2000 $_FACTORYFS_DIR/bin/busybox_mount
	sudo chmod 755 $_FACTORYFS_DIR/bin/busybox_mount

	sudo cp -av sed/setuid_wrapper $_FACTORYFS_DIR/bin/setuid_wrapper
	sudo chown 0.0 $_FACTORYFS_DIR/bin/setuid_wrapper
	sudo chmod 6755 $_FACTORYFS_DIR/bin/setuid_wrapper

	sudo rm $_FACTORYFS_DIR/bin/toolbox
	sudo cp -av sed/toolbox $_FACTORYFS_DIR/bin/toolbox
	sudo chown 0.2000 $_FACTORYFS_DIR/bin/toolbox

	sudo chmod 755 $_FACTORYFS_DIR/bin/toolbox
	sudo cp -av sed/install-recovery.sh $_FACTORYFS_DIR/etc/install-recovery.sh
	sudo cp -av sed/install-recovery.sh $_FACTORYFS_DIR/etc/rooting.sh
	sudo chown 0.0 $_FACTORYFS_DIR/etc/install-recovery.sh
	sudo chmod 755 $_FACTORYFS_DIR/etc/install-recovery.sh
	sudo chown 0.0 $_FACTORYFS_DIR/etc/rooting.sh
	sudo chmod 755 $_FACTORYFS_DIR/etc/rooting.sh

	sudo cp -av sed/busybox_file $_FACTORYFS_DIR/etc/busybox_file
	sudo cp -av sed/su_file $_FACTORYFS_DIR/etc/su_file
}

最終工程のfunc_make_odin_packageはイメージファイル群である$OPT_FILESを無圧縮tarでくっつけて、md5チェックサムを後ろにくっつけている。

func_make_odin_package()
{
	_OUT_DIR=$1
	_FACTORYFS_IMG=$2
	_IMAGE_FILE=$3
	_OPT_FILES=$4
	echo ">>>>> make odin package..."
	cd $_OUT_DIR
	
	tar cvf $_IMAGE_FILE-system.tar $_FACTORYFS_IMG $_OPT_FILES
	md5sum -t $_IMAGE_FILE-system.tar >> $_IMAGE_FILE-system.tar
	mv $_IMAGE_FILE-system.tar $_IMAGE_FILE-system.tar.md5
	sudo rm $_FACTORYFS_IMG
	if [ ! -z $_OPT_FILES ]; then
		sudo rm $_OPT_FILES
	fi
	cd $BASE_DIR
}