mikan's technical note

仕事&趣味で実験した小技の備忘録です(Linux,windows,DOS等)

MENU

【PSC】本体のファイルを削除するシェル

※※※ 取扱注意!!! ※※※

※※※ 使用方法によっては文鎮化の危険性あり ※※※
※※※ 事前に必ずバックアップをとってください ※※※
※※※ 使用にあたっては利用者の自己責任でお願いします ※※※


PSC本体のファイルを削除するシェルです!
※別途 gpghax が必要です

PSC電源オフ、電源ケーブルを抜いていることを確認
USBメモリを挿す
電源ケーブルを挿し、PSC電源オン
起動直後にブラックアウトします
処理が終わると画面が表示されるので電源を切り電源ケーブルを抜いてUSBメモリを抜いてください


lolhack.sh

#!/bin/bash

### define
DB=regional_custom.db
BACKUPDIR=/media/backup
GAMEDIR=/media/games
LOGDIR=/media/log

### get log number
LOGCOUNT=1
LOGCOUNT_MAX=999
while [ $LOGCOUNT -le $LOGCOUNT_MAX ]
do
    LOGCOUNTNAME=$(printf %03d $LOGCOUNT)
    if [ -e $LOGDIR/${LOGCOUNTNAME}_before_ls.txt ]; then
        LOGCOUNT=`expr $LOGCOUNT + 1`
    else
        break
    fi
done
LOGCOUNTNAME=$(printf %03d $LOGCOUNT)

### UI Stop
sleep 8
echo "UI Stop" >> /media/messages.txt 
killall ui_menu
sleep 5

### log(before)
COUNT=1
COUNT_MAX=30
while [ $COUNT -le $COUNT_MAX ]
do
    if [ -e /gaadata/$COUNT ]; then
        echo "/gaadata/$COUNT" >> $LOGDIR/${LOGCOUNTNAME}_before_ls.txt 
        ls -l /gaadata/$COUNT >> $LOGDIR/${LOGCOUNTNAME}_before_ls.txt
    fi
    COUNT=`expr $COUNT + 1`
done
cd /
df -h > $LOGDIR/${LOGCOUNTNAME}_before_df.txt
sync

### ========== DELETE GAMES !!! (PSC) ==========================
mount -o rw,remount /gaadata
#echo "rm /gaadata/1/*" >> /media/messages.txt;rm -rf /gaadata/1/*
#echo "rm /gaadata/2/*" >> /media/messages.txt;rm -rf /gaadata/2/*
#echo "rm /gaadata/3/*" >> /media/messages.txt;rm -rf /gaadata/3/*
#echo "rm /gaadata/4/*" >> /media/messages.txt;rm -rf /gaadata/4/*
#echo "rm /gaadata/5/*" >> /media/messages.txt;rm -rf /gaadata/5/*
#echo "rm /gaadata/6/*" >> /media/messages.txt;rm -rf /gaadata/6/*
#echo "rm /gaadata/7/*" >> /media/messages.txt;rm -rf /gaadata/7/*
#echo "rm /gaadata/8/*" >> /media/messages.txt;rm -rf /gaadata/8/*
#echo "rm /gaadata/8/*" >> /media/messages.txt;rm -rf /gaadata/9/*
#echo "rm /gaadata/10/*" >> /media/messages.txt;rm -rf /gaadata/10/*
#echo "rm /gaadata/11/*" >> /media/messages.txt;rm -rf /gaadata/11/*
#echo "rm /gaadata/12/*" >> /media/messages.txt;rm -rf /gaadata/12/*
#echo "rm /gaadata/13/*" >> /media/messages.txt;rm -rf /gaadata/13/*
#echo "rm /gaadata/14/*" >> /media/messages.txt;rm -rf /gaadata/14/*
#echo "rm /gaadata/15/*" >> /media/messages.txt;rm -rf /gaadata/15/*
#echo "rm /gaadata/16/*" >> /media/messages.txt;rm -rf /gaadata/16/*
#echo "rm /gaadata/17/*" >> /media/messages.txt;rm -rf /gaadata/17/*
#echo "rm /gaadata/18/*" >> /media/messages.txt;rm -rf /gaadata/18/*
#echo "rm /gaadata/19/*" >> /media/messages.txt;rm -rf /gaadata/19/*
#echo "rm /gaadata/20/*" >> /media/messages.txt;rm -rf /gaadata/20/*
#echo "rm /gaadata/21/*" >> /media/messages.txt;rm -rf /gaadata/21/*
#echo "rm /gaadata/22/*" >> /media/messages.txt;rm -rf /gaadata/22/*
#echo "rm /gaadata/23/*" >> /media/messages.txt;rm -rf /gaadata/23/*
#echo "rm /gaadata/24/*" >> /media/messages.txt;rm -rf /gaadata/24/*
#echo "rm /gaadata/25/*" >> /media/messages.txt;rm -rf /gaadata/25/*
#echo "rm /gaadata/26/*" >> /media/messages.txt;rm -rf /gaadata/26/*
#echo "rm /gaadata/27/*" >> /media/messages.txt;rm -rf /gaadata/27/*
#echo "rm /gaadata/28/*" >> /media/messages.txt;rm -rf /gaadata/28/*
#echo "rm /gaadata/29/*" >> /media/messages.txt;rm -rf /gaadata/29/*
#echo "rm /gaadata/30/*" >> /media/messages.txt;rm -rf /gaadata/30/*
sync
### ============================================================

### log(after)
COUNT=1
COUNT_MAX=30
while [ $COUNT -le $COUNT_MAX ]
do
    if [ -e /gaadata/$COUNT ]; then
        echo "/gaadata/$COUNT" >> $LOGDIR/${LOGCOUNTNAME}_after_ls.txt 
        ls -l /gaadata/$COUNT >> $LOGDIR/${LOGCOUNTNAME}_after_ls.txt
    fi
    COUNT=`expr $COUNT + 1`
done
cd /
find . | sort > $LOGDIR/${LOGCOUNTNAME}_after_find.txt
df -h > $LOGDIR/${LOGCOUNTNAME}_after_df.txt
sync

#UI Start
echo "UI Start" >> /media/messages.txt 
cd /data/AppData/sony/pcsx
/usr/sony/bin/ui_menu --power-off-enable
echo "cp /data/sony/ui/error.log" >> /media/messages.txt 
cp -pr /data/sony/ui/error.log /media/error.log
sync


削除したいファイル番号のコメントを外してください
例)1番を削除する場合

echo "rm /gaadata/1/*" >> /media/messages.txt;rm -rf /gaadata/1/*


実行後、USBメモリの以下のファイルの中を見て、ファイルが削除されていることを確認してください
/log/xxx_after_df.txt … PSC本体の空き領域
/log/xxx_after_ls.txt … PSC本体 /gaadata 配下のファイル一覧
/log/xxx_after_find.txt … PSC本体 全ファイル一覧(参考)
/messages.txt … 実行ログ