Skip to content

Instantly share code, notes, and snippets.

@fi01
fi01 / SO-02J_BLU_Root_Docomo.txt
Created October 24, 2020 08:13
SO-02JのBLUとRoot化メモ(Docomoファーム)
アンロック前のバックアップ
Flashtool 0.9.25.0で34.1.B.0.336を焼く
TA領域をBackupTA_v2で取得
BLU準備
qUnlock Toolsでアンロック
サービスメニューのConfigurationで値の確認
「Bootloader unlock allowed: Yes」
この状態のTA領域をBackupTA_v2で取得
@fi01
fi01 / cube-towel.c
Last active March 13, 2018 23:54
CVE-2014-3153 exploit code
//Android.mk にて、「LOCAL_CFLAGS := -fno-stack-protector -mno-thumb -O0」を指定すること。
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <pthread.h>
#include <sys/mman.h>
#include <sys/syscall.h>
#include <linux/futex.h>
@fi01
fi01 / ptrace_test.c
Created November 16, 2013 14:54
CVE-2013-6282 exploit SH-06E ビルド01.00.07のMIYABI解除済みの環境で/sys/kernel/uevent_helperに"test_data"を書き込む。 下記のコードを流用した。 https://android.googlesource.com/platform/cts/ branch android-4.4_r1.1 ./tests/tests/security/jni/android_security_cts_NativeCodeTest.cpp
/*
* Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
私が使っているCWMと通常起動を分岐させるスクリプトです。
起動時に音量キーを連打するとCWM起動になります。
bootイメージを展開して/initを/init.origにリネームし、代わりにこのスクリプトを/initに配置します。
busybox環境を/binに配置します。
CWM起動用のramdiskをtarで固めて/bin/recovery.tar.gzに配置します。
また、/bin/_suを配置しておくと良いと思います。
SH-04EとSH-06Eはexecでinit.origを実行すると何故か電波を掴まないので、CWMを起動しない場合はreboot recoveryします。
この機種は通常起動のブートイメージをrecoveryに焼いて下さい。
過去にCWM対応させた物はビルド用のデバイス定義を android_device_sharp_xxx というリポジトリで置いてあります。
多分参考になると思います。
recovery/root/init.recovery.qcom.rcが肝で、ここに機種依存の設定を書きます。
これを仕上げるのが結構大変です。
adbやCWMの動作に必要な、/systemにあるサービスのバイナリと使用するライブラリはproprietary-files.txtに書いてextract-files.shを実行してツリーに取り込みます。
これらのファイルはramdiskの/vendor配下に展開されます。
そのままでは/vendorに置いても動作しないので、extract-files.shは取り込みを行う際に/vendorで動く様にパッチします。
また、/vendor/binに実行権限が付与されないのでadd_permission_for_vendor.patchを適用する必要があります。
@fi01
fi01 / SH-06E MMC WP
Created October 19, 2013 12:59
SH-06EのMMC WP(ライトプロテクト)まとめ
SH-06EのMMC WP(ライトプロテクト)まとめ
自分の見た資料ではMMCのWPは下記の様になっている。
MMCのコマンド
SEND_WRITE_PROT_TYPE
現在のプロテクトステータスを得る。
ステータスは2ビットで表される。
11:permanent 電源を切ってもWPが有効。
10:power-on 電源を切るまでWPが有効。
@fi01
fi01 / How to dump log partition on SH device
Last active December 25, 2015 06:58
VpnFakerを使ってSHARP端末のlogパーティションをダンプする。
- logパーティションのダンプ
1. root権限で動作するスクリプトを用意
ディレクトリ: /data/local/tmp
ファイル名: get-log.sh
パーミッション: 755
2. system権限で動作するスクリプトを用意
ディレクトリ: /data/local/tmp
ファイル名: onBoot
@fi01
fi01 / ccs_disabler.patch
Created August 2, 2013 01:14
CCSecurity Disabler for L-02E V20a
diff --git a/security/Kconfig b/security/Kconfig
index 61e0643..0bfdc80 100755
--- a/security/Kconfig
+++ b/security/Kconfig
@@ -235,5 +235,7 @@ config DEFAULT_SECURITY
source security/ccsecurity/Kconfig
+source security/ccs_disabler/Kconfig
+
ブートローダはaboot。同名のパーティションに保存されている。
ブートイメージの起動には署名(SHA256)が必要、いわゆるlocked。
署名が合わない時はtamperedフラグをセットし、shdiag
パーティションにログを書き込み、起動停止。この時本来は
fastbootになるが、fastboot自体が削除されている。
テンポラリにイメージを読み込み、署名のチェック後に
カーネルとramdiskを実際の本来のアドレスにコピーするため、
lokiが使う脆弱性は無い。
署名が確認されるとkernelのcmdlineに
androidboot.authorized_kernel=trueが追加される。
@fi01
fi01 / How to use msm_acdb explot
Created July 28, 2013 04:42
Stack-based buffer overflow in acdb audio driver (CVE-2013-2597)
To use msm_acdb explot we need to work 4 steps.
1. Find how to run command with root or system previlege
2. Get offset for registers to setup
3. Choose proper code in kernel image
4. Setup parameters in acdb.c
1. Find how to run command with root or system previlege
Do it your self. :-P