Кастомная прошивка для Samsung Galaxy S II I9100 (на основе I9100XWLA4 2.3.6 Gingerbread)

Написал(а): ZeroChaos| Когда: 23 февраля, 2012 г.

SGSII-01 SGSII-02

Особенности:
- Pre-Rooted (su, Superuser.apk)
- Внедрен Mobile ODIN
- CSC: SER (отсюда русская клавиатура от Samsung + русская Swype клавиатура)
- Удалены виджеты от Samsung, часть которых произвольно висела в памяти и потребляла небольшое количество ресурсов
- Удалены Google Maps и Google Street View (из расчета, что при необходимости будут установлены из маркета), удален ThinkFree Office
- Удалены звуки затвора камеры
- Обновлены системные приложения
- Обновлен tzdata (база данных часовых поясов)
- AdFree (hosts)
- В ‘/system’ свободно 69 MB

Шьется через Odin одним файлом. Пользователи «альтернативных» операционных систем могут воспользоваться Heimdall. В случае, если у Вас уже установлена система с правами root, то можно установить Mobile ODIN и прошить сразу через него как factoryfs, так и ядро, в один заход.

Прошивка через Odin:
1. Подставляем в поле PDA ‘I9100XWLA4-ZEROLAB-DOT-NET.tar’
2. Start

Прошивка через Heimdall:
1. Распаковать tar-архив, перейти в папку с содержимым
2. Выполнить в консоли:

1
heimdall flash --factoryfs factoryfs.img

После прошивки рекомендуется зайти в recovery режим (неважно стоковое это ядро или кастомное, проделать эту операцию можно в любом) и сделать Wipe data/cache.

Скачать:
I9100XWLA4-ZEROLAB-DOT-NET

Рекомендуемое ядро:
SiyahKernel (gokhanmoral.com). Во избежание желтого треугольника, прошиваем через Mobile ODIN. Для этого нужно загрузиться в систему, поэтому сначала можно прошить стоковое ядро, которое не вызовет увеличение счетчика и появление желтого треугольника. После этого либо остаемся на стоковом ядре, либо грузимся в систему, открываем Mobile ODIN и прошиваем SiyahKernel.

Стоковое ядро:
I9100XWLA-kernel

Прошиваем либо через Odin, либо через Heimdall:

1
heimdall flash --kernel zImage

{ Комментариев - 1 }

HP ProLiant MicroServer N40L with Supermicro AOC-SG-i2 Dual Gigabit i82575EB

Написал(а): ZeroChaos| Когда: 31 января, 2012 г.

Привезли наконец-то двухпортовую серверную сетевую карту Supermicro AOC-SG-i2 Dual Gigabit i82575EB. Поставил, заодно и конвертер 5.25″ ODD Bay to 3.5″ HDD Bay прикрутил. Улучшить конфигурацию можно, разве что, поставив Remote Access Card (KVM-over-IP). Ну, либо дискретную видяху, один свободный слот остался. Только кому она на сервере нужна? Нужды в HTPC при наличии Popcorn Hour особо нет, к тому же видеокарту мощностью больше 25 Вт не поставить. Да и без Remote Access Card обойдусь, наверное. Что бы еще прикрутить?

» Читать полностью »

{ Комментариев - 3 }

Они украли у нас страну

Написал(а): ZeroChaos| Когда: 31 января, 2012 г.

rsync — Automated backup script (with snapshots)

Написал(а): ZeroChaos| Когда: 16 января, 2012 г.

Решил немного упростить задачу резервного копирования при помощи rsync и написал для этого небольшой скрипт на bash. Да, знаю, уже есть несколько решений, упрощающих backup при помощи rsync, но для того, чтобы выполнить требуемую задачу, все равно пришлось бы писать для этого свою обвязку. Потому было принято решение написать что-то свое, максимально упрощающее задачу бэкапа и сопутствующих этому действий, таких как генерация ключа для авторизации по ssh, а так же его копирование на backup-сервер.

Следующий скрипт позволяет читать список копирумых каталогов из текстового файла, применять маску исключений, задаваемую в текстовом файле, а так же опционально делать snapshot’ы, содержащие измененные, либо удаленные файлы. Тем самым, появляется возможность откатиться на старые версии файлов, случайно удаленных, к примеру, либо ошибочно измененных. При этом сохраняется полная изначальная структура каталогов, что позволяет легко найти требуемый файл. Snapshot’ы хранятся в каталогах со следующей маской в имени: ‘год-месяц-день.XXчXXм’. Есть возможность авто-ротации snapshot’ов.

backup.sh:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/bin/sh

# --------------------------------------------
# Automated backup script
# Written by ZeroChaos
# Version 1.1, 2012-01-14
# Site: http://zerolab.net/
# --------------------------------------------
# NOTE: Exclude spaces in the variable FOLDER!
# --------------------------------------------
# set -e

# -------------------------------------------- begin of [Configurable settings]
# Use SSH for sync
export RSYNC_RSH="ssh -c arcfour -o Compression=no -x"

# Remote account
USER="zerochaos"
HOST="zerolab.net"
REMOTEHOST="${USER}@${HOST}"

# Enable or disable snapshot
SNAPSHOT="true"
# Auto-rotate (days)
SDAYS="15"

# Destination folder, snapshot directory
DEST_point="/home/zerochaos/www/"
SDIR="snapshot"
SNAPSHOT_dir="${DEST_point}${SDIR}/`date +'%Y-%m-%d.%Hh%Mm'`"

# Take the list from the same folder where the script is called
DIR=$(dirname "$0")
LISTFOLDERS=$DIR/backup.txt
LISTEXCLUDES=$DIR/exclude.txt
STRDEL="# begin of [do not delete this string]"
# -------------------------------------------- end of [Configurable settings]

# -------------------------------------------- begin of [Do not touch this section]
# If no arguments
if [ $# = 0 ]; then
    while read FOLDER; do
        if [ -n "$FOLDER" ] && [ "$FOLDER" != "$STRDEL" ]; then
            FOLDERNAME="`echo "$FOLDER" | awk -F/ '{ print $NF }'`"
            # Options for rsync
            if [ $SNAPSHOT = "true" ]; then
                OPTIONS="-Sazq --bwlimit=3840 --delete --exclude-from=$LISTEXCLUDES --backup --backup-dir=$SNAPSHOT_dir/$FOLDERNAME"
            else
                OPTIONS="-Sazq --bwlimit=3840 --delete --exclude-from=$LISTEXCLUDES"
            fi
            # Sync
            rsync $OPTIONS "${FOLDER}/" $REMOTEHOST:"${DEST_point}${FOLDERNAME}/"
        fi
    done < $LISTFOLDERS
    # Snapshot auto-rotate
    if [ $SNAPSHOT = "true" ]; then
        ssh $REMOTEHOST "find ${DEST_point}${SDIR}/ -type d -mtime +$SDAYS -exec rm -r {} \;" >/dev/null 2>&1
    fi
fi

# Generate public/private rsa key pair
ssh_keygen() {
    ssh-keygen -t rsa -b 4096
}

# Copy your public key on a remote machine
ssh_copy_id() {
    ID_FILE="${HOME}/.ssh/id_rsa.pub"

    if [ x$SSH_AUTH_SOCK != x ] && ssh-add -L >/dev/null 2>&1; then
      GET_ID="$GET_ID ssh-add -L"
    fi

    if [ -z "`eval $GET_ID`" ] && [ -r "${ID_FILE}" ]; then
      GET_ID="cat ${ID_FILE}"
    fi

    if [ -z "`eval $GET_ID`" ]; then
      echo "$0: ERROR: No identities found" >&2
      exit 1
    fi

    { eval "$GET_ID" ; } | ssh ${REMOTEHOST%:} "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" || exit 1
}

ME=$(basename "$0")
print_help() {
    echo
    echo "Usage: $ME [OPTION...]"
    echo
    echo "Options:"
    echo "         -g     Generate public/private rsa key pair:"
    echo "                ssh-keygen -t rsa -b 4096"
    echo "         -c     Copy your public key on a remote machine:"
    echo "                ssh-copy-id $REMOTEHOST"
    echo "         -h     Help."
    echo
    echo "Example: $ME -gc"
    echo "Use both options, generate & copy."
    echo
}

while getopts ":gch" opt;
do
    case $opt in
        g) ssh_keygen;
            ;;
        c) ssh_copy_id;
            ;;
        h) print_help;
            ;;
        *) echo "Wrong option";
            echo "For help, use: $ME -h";
            exit 1
            ;;
        esac
done
# -------------------------------------------- end of [Do not touch this section]

Сохраните содержимое в файл backup.sh и дайте права на выполнение:

1
chmod -x backup.sh

Положите файлы backup.txt и exclude.txt рядом со скриптом. Формат файлов представлен ниже.

backup.txt:

1
2
3
4
5
# begin of [do not delete this string]
/home/zerochaos/www/msilab.net
/home/zerochaos/www/ruslab.net
/home/zerochaos/www/zerolab.net
# end of [do not delete this string]

exclude.txt:

1
2
3
4
5
6
temp/summ/checks/*
temp/sess/*
temp/tmp/*
template_cache/*
cache/*
logs/*

Параметры, поддающиеся настройке в backup.sh, вынесены в отдельную секцию и снабжены соответствующими комментариями. Для связи с backup-сервером будем использовать протокол ssh, для авторизации воспользуемся беспарольным вариантом, т.е. авторизацией по ключу. Для этого сгенерируем пару public/private rsa key. Выполним скрипт с ключом -g:

1
backup.sh -g

Отвечаем на заданные вопросы и переходим к копированию открытого ключа на удаленный сервер. Для этого выполним скрипт с ключом -c:

1
backup.sh -c

Вводим пароль пользователя, под которым будет происходить дальнейшая авторизация по ключу во время резервного копирования. Две команды выше можно объединить в одну, тогда операции будут выполнены последовательно:

1
backup.sh -gc

Остается добавить скрипт в cron:

1
2
#minute hour    mday    month   wday    command
00      1       *       *       *       sh /scripts/backup.sh

Вот и все, настраивайте список копируемых каталогов, список исключений, конечную директорию и параметры создания снапшотов. Надеюсь этот скрипт окажется для многих полезным и сэкономит много времени и сил. Всегда делайте backup’ы.

{ Нет комментариев }

HP ProLiant MicroServer N40L with 8GB Memory

Написал(а): ZeroChaos| Когда: 11 января, 2012 г.

Вот она! Домашняя серверная, ужатая до минимума. Наконец-то нормальная лаба с гипервизором на борту. HP ProLiant MicroServer N40L. 8ГБ оперативы, 4 корзины под HDD + 1, полученная с помощью конвертера 5.25″ ODD Bay to 3.5″ HDD Bay. Поддерживаются диски до 4ТБ, в теории можно собрать хранилище на 20ТБ (+ еще на eSata можно один повесить, получится 24ТБ o_O). Но, думаю, ограничусь 5×3ТБ, когда диски подешевеют, а случится это, похоже, не скоро, долго еще спекулировать будут.

» Читать полностью »

{ Комментариев - 18 }

Russia. Freedom.

Написал(а): ZeroChaos| Когда: 20 декабря, 2011 г.

Подумайте о своём будущем

Написал(а): ZeroChaos| Когда: 2 декабря, 2011 г.

На выборы идти надо, что бы вам не говорили, но если не хотите чтобы за вас проголосовали как нужно им (ПЖиВ), нужно идти, не дайте им использовать свой бюллетень (порча его так же ни к чему не приведет). Хорошенько подумайте над своим выбором. До выборов осталось всего ничего, каким бы сложным выбор ни был, для себя я его сделал. Не дайте прокатить себя на «каруселе», сегодня вы продали свой голос за рубль, завтра вас прокатят на миллион, не дайте возможности жуликам и ворам остаться у руля. Подумайте о своём будущем.

» Читать полностью »

Mac OS X Snow Leopard — исправляем переход на зимнее время

Написал(а): ZeroChaos| Когда: 30 октября, 2011 г.

По какой-то причине, в Apple решили обделить пользователей Snow Leopard и не предоставили обновление часовых поясов, поэтому, мы можем наблюдать перевод на зимнее время, которого теперь быть не должно. К слову, в OS X Lion и iOS 5 с этим проблем нет.

Исправим эту неприятность. Открываем консоль и последовательно выполняем:

1
2
3
4
5
6
7
8
9
10
11
12
13
mkdir temp-tz
cd temp-tz
curl -O http://www.iana.org/time-zones/repository/releases/tzdata2011m.tar.gz
tar zxvf tzdata2011m.tar.gz
sudo zic europe
curl -O http://www.opensource.apple.com/tarballs/ICU/ICU-400.42.tar.gz
tar zxvf ICU-400.42.tar.gz
cp tzdata2011m.tar.gz ICU-400.42/icuSources/tools/tzcode/
cd ICU-400.42/icuSources
./runConfigureICU MacOSX --with-data-packaging=archive
gnumake
sudo install -o root -g wheel -m 0644 -Sp data/out/icudt40l.dat /usr/share/icu/icudt40l.dat
cd ../../../ && rm -rf temp-tz

Перезагружаемся.

P.S. Для компиляции у вас должен быть установлен GCC (входит в пакет Xcode).

{ Комментариев - 4 }

RIP Steve Jobs. 1955-2011

Написал(а): ZeroChaos| Когда: 6 октября, 2011 г.

RIP Steve Jobs

Ушёл кумир. Ушёл гений. Ушёл из жизни человек, изменивший мир. Светлая память, Стив.

{ Нет комментариев }

Nook Touch — System backup on the OS X

Написал(а): ZeroChaos| Когда: 3 сентября, 2011 г.

nook_touch_backup

1. Скачайте noogie.img

2. Введите в терминале:

1
diskutil list

или

1
df -h

И ищите свою карту памяти.

3. Размонтируйте карту памяти:

1
diskutil unmountDisk /dev/disk#

Где # — номер устройства, не используйте при размонтировании disk#s# (где s — slice). После чего будет сообщение об успешном размонтировании всех томов карты памяти.

4. Разворачиваем образ на карту памяти:

1
dd if=noogie.img of=/dev/rdisk# bs=1m

5. Загрузите свой NOOK Touch со вставленной только что приготовленной картой памяти. Подключите Nook по USB к компьютеру.

6. Введите в терминале:

1
diskutil list

или

1
df -h

И ищите карту памяти Nook.

7. Размонтируйте карту памяти:

1
diskutil unmountDisk /dev/disk#

8. Снимите образ:

1
2
cd ~/Desktop
dd if=/dev/rdisk# of=nook_touch_backup.img bs=1m

Где # — запомненный ранее номер устройства.

После чего получите образ с именем nook_touch_backup.img на своем рабочем столе. Удостоверьтесь, что размер образа получился 1958739968 байт.

Для восстановления из образа:

1
dd if=nook_touch_backup.img of=/dev/rdisk# bs=1m

{ Комментариев - 10 }