forked from len0rd/rockbox
		
	The getty service mointors /dev/ttyGS0 (also created by the patched firmware). When the g_serial.ko module is loaded this automatically enables shell access via usb. It exposes a cdc-acm device to the host which is compatible to linux (usb_serial.ko) and windows. The g_serial.ko is not included module can be build from the YP-R0 open source package provided by samsung. It can be loaded via rc.user on the internal memory. Change-Id: I4903a635fd2e2f0ce6f5e91589a31d72bba2776b
		
			
				
	
	
		
			120 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| 
 | |
| ######################################################################
 | |
| #             __________               __   ___.
 | |
| #   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
 | |
| #   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
 | |
| #   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
 | |
| #   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
 | |
| #                     \/            \/     \/    \/            \/
 | |
| #
 | |
| #   * Script to patch an unpacked Samsung YP-R0 firmware file */
 | |
| #   Copyright (C) 2011 Thomas Martitz
 | |
| #   Copyright (C) 2013 Lorenzo Miori
 | |
| ######################################################################
 | |
| # bail out early
 | |
| set -e
 | |
| 
 | |
| if [ $# -lt 1 ] || [ $# -gt 2 ]; then
 | |
|     echo "Usage: $0 <files path> [path to unpacked rom]"
 | |
|     echo "\t<files path> is expected to have a special resources and rootfs layout"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| MODEL="unknown"
 | |
| FILES=${1%/}
 | |
| FILES=${FILES:-"/"}
 | |
| COMMON_FILES="$FILES/common"
 | |
| DIR=${2:-"."}
 | |
| DIR=${DIR%/}
 | |
| ROOTFS=$DIR/rootfs
 | |
| CRAMFS=$DIR/cramfs-fsl.rom
 | |
| 
 | |
| # sanity checks
 | |
| 
 | |
| for subdir in common r0 r1
 | |
| do
 | |
|     if [ ! -d "$FILES/$subdir" ]
 | |
|     then
 | |
|         echo "Missing $FILES/$subdir. Invalid $FILES layout."
 | |
|         exit 1
 | |
|     fi
 | |
| done
 | |
| 
 | |
| if [ ! -e "$FILES/r1/etc/safemode/cable_detect" ]
 | |
| then
 | |
|     echo "Couldn't find cable_detect binary (try 'make' or select a valid layout directory)"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| for image in pre_smode.raw post_smode.raw safemode.raw
 | |
| do
 | |
|     if [ ! -e "$FILES/r1/etc/safemode/$image" ]
 | |
|     then
 | |
|         echo "Missing r1 .raw image file (try 'make'): $image"
 | |
|         exit 1
 | |
|     fi
 | |
|     if [ ! -e "$FILES/r0/etc/safemode/$image" ]
 | |
|     then
 | |
|         echo "Missing r0 .raw image file (try 'make'): $image"
 | |
|         exit 1
 | |
|     fi
 | |
| done
 | |
| 
 | |
| # this needs to be run as root!
 | |
| if [ $(whoami) != "root" ]
 | |
| then
 | |
|   echo "This needs to be run as root"
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| if [ ! -e $1 ] || [ ! -e $2 ]; then
 | |
|     echo "$1 or $2 does not exist"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| if [ -z $ROOTFS ] || [ -z $FILES ]; then
 | |
|     echo "Invalid input directories"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| if [ ! -e $CRAMFS ]; then
 | |
|     echo "Cramfs image not found (did you extract the firmware?)"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| echo "Extracting cramfs image"
 | |
| 
 | |
| [ ! -e $ROOTFS ] || rm -R $ROOTFS
 | |
| cramfs-1.1/cramfsck -x $ROOTFS $CRAMFS
 | |
| 
 | |
| # now we can detect player version
 | |
| # NOTE: order is important here, since ironically
 | |
| # r1's ROM contains also r0's executables
 | |
| if [ -e "$ROOTFS/usr/local/bin/r1" ]
 | |
| then
 | |
|     MODEL="r1"
 | |
| else
 | |
|     if [ -e "$ROOTFS/usr/local/bin/r0" ]
 | |
|     then
 | |
|         MODEL="r0"
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| echo "$MODEL ROM found."
 | |
| 
 | |
| echo "Patching rootfs (common files)"
 | |
| echo "cp -r $COMMON_FILES/* $ROOTFS/"
 | |
| cp -r $COMMON_FILES/.rockbox $ROOTFS/
 | |
| cp -r $COMMON_FILES/* $ROOTFS/
 | |
| 
 | |
| echo "Patching rootfs ($MODEL files)"
 | |
| MODEL_FILES="$FILES/$MODEL"
 | |
| echo "cp -r $MODEL_FILES/* $ROOTFS/"
 | |
| cp -r $MODEL_FILES/* $ROOTFS/
 | |
| rm -rf $ROOTFS/dev/ttyGS0
 | |
| mknod $ROOTFS/dev/ttyGS0 c 127 0
 | |
| 
 | |
| echo "Packing new cramfs image"
 | |
| cramfs-1.1/mkcramfs $ROOTFS $CRAMFS
 |