ハイス系セットトップボックスSTBのHacker記録
説明
多くのトップボックスは海思のSoC案を使用しています.これらのボックスは一般的にAndroid 4.4、または5.0のシステムを使用しています.root権限がありません.servicemanagerを変更するなど、変更する必要があるかどうかは、簡単なrootを使用してcp命令で置き換えられません.servicemanagerはずっと稼働しているので、killが落ちても自動的に再起動します.したがって、通常モードで上書きすることはできない.
recoveryモードに入ることができれば、解決することもできます.もっと簡単な方法は、システムパーティションddを直接出て、変更してddを返すことができます.
コンソールの取得
セットトップボックスに4ライン/3ラインのTTLシリアルポートがある場合、最初のステップはシリアルポートを接続し、Root権限を取得することである.
パーティションの表示
次にmmc/emmcのlayoutを表示します.
操作する前に、バックアップして、各重要なパーティションddを直接出ればいいです.例えばsystemの場合:
dd if=/dev/block/mmcblk0p17 of=/mnt/sda/sda1/system.img
adbdの起動
ddが出てきたらadbdを起動します.
start adbd
インターネットに接続し、netstat-apnを使用してadbdに使用するポート番号を表示します.一般的には5555で、コンピュータの上でadb connect接続を使用してadbを使用することができます.それではadb installを使用してアプリケーションをインストールすることもできます.
そしてpushが上がってきます.
次に、そのタイプを見てみましょう(consoleでmountを使用してもタイプを見ることができます):
これは私たちがよく知っているext 4で、私たちは完全に直接mountして、それから変更することができます.
変更が完了すると、HiToolsを使用してこのパーティションを再書き込みできます.しかし、HiToolsのHiBurningツールはWindows上で実行する必要があります.そのため、簡単に変更したsystem.img pushをボード上に、直接ddをsystemパーティションに入れることもできます.
その他の情報
海思のボード/トップボックスが起動すると、fastbootの起動、ubootの起動、kernelの起動など、起動プロセスのロゴが印刷されます.
この間に使用するstorageのタイプが提示されます
SDKのバージョンは、次のようになります.
SDK Version: HiSTBAndroidV600R001C00SPC063_v2016022921
SDKのバージョンによると、私たちは自分でいくつかのものをコンパイルすることができます.
しかし、UBOOTのAutobootのkey interruptが無効になったり、単純ではないd、ctrl+c、spaceなどのボタンに変更されたりして、ubootをdumpしてdisassembleに来ないとubootのコマンドラインに入ることができません.
多くのトップボックスは海思のSoC案を使用しています.これらのボックスは一般的にAndroid 4.4、または5.0のシステムを使用しています.root権限がありません.servicemanagerを変更するなど、変更する必要があるかどうかは、簡単なrootを使用してcp命令で置き換えられません.servicemanagerはずっと稼働しているので、killが落ちても自動的に再起動します.したがって、通常モードで上書きすることはできない.
recoveryモードに入ることができれば、解決することもできます.もっと簡単な方法は、システムパーティションddを直接出て、変更してddを返すことができます.
コンソールの取得
セットトップボックスに4ライン/3ラインのTTLシリアルポートがある場合、最初のステップはシリアルポートを接続し、Root権限を取得することである.
パーティションの表示
次にmmc/emmcのlayoutを表示します.
root@Hi3796MV100:/ # ls -l //dev/block/platform/hi_mci.1/by-name/
lrwxrwxrwx root root 1970-01-01 08:00 baseparam -> /dev/block/mmcblk0p5
lrwxrwxrwx root root 1970-01-01 08:00 bootargs -> /dev/block/mmcblk0p2
lrwxrwxrwx root root 1970-01-01 08:00 cache -> /dev/block/mmcblk0p19
lrwxrwxrwx root root 1970-01-01 08:00 deviceinfo -> /dev/block/mmcblk0p4
lrwxrwxrwx root root 1970-01-01 08:00 fastboot -> /dev/block/mmcblk0p1
lrwxrwxrwx root root 1970-01-01 08:00 fastplay -> /dev/block/mmcblk0p9
lrwxrwxrwx root root 1970-01-01 08:00 fastplaybak -> /dev/block/mmcblk0p10
lrwxrwxrwx root root 1970-01-01 08:00 hibdrv -> /dev/block/mmcblk0p14
lrwxrwxrwx root root 1970-01-01 08:00 kernel -> /dev/block/mmcblk0p11
lrwxrwxrwx root root 1970-01-01 08:00 logo -> /dev/block/mmcblk0p7
lrwxrwxrwx root root 1970-01-01 08:00 logobak -> /dev/block/mmcblk0p8
lrwxrwxrwx root root 1970-01-01 08:00 misc -> /dev/block/mmcblk0p12
lrwxrwxrwx root root 1970-01-01 08:00 pqparam -> /dev/block/mmcblk0p6
lrwxrwxrwx root root 1970-01-01 08:00 private -> /dev/block/mmcblk0p21
lrwxrwxrwx root root 1970-01-01 08:00 qbdata -> /dev/block/mmcblk0p16
lrwxrwxrwx root root 1970-01-01 08:00 qbflag -> /dev/block/mmcblk0p15
lrwxrwxrwx root root 1970-01-01 08:00 recovery -> /dev/block/mmcblk0p3
lrwxrwxrwx root root 1970-01-01 08:00 sdcard -> /dev/block/mmcblk0p22
lrwxrwxrwx root root 1970-01-01 08:00 system -> /dev/block/mmcblk0p17
lrwxrwxrwx root root 1970-01-01 08:00 unuse -> /dev/block/mmcblk0p20
lrwxrwxrwx root root 1970-01-01 08:00 userapi -> /dev/block/mmcblk0p13
lrwxrwxrwx root root 1970-01-01 08:00 userdata -> /dev/block/mmcblk0p18
操作する前に、バックアップして、各重要なパーティションddを直接出ればいいです.例えばsystemの場合:
dd if=/dev/block/mmcblk0p17 of=/mnt/sda/sda1/system.img
adbdの起動
ddが出てきたらadbdを起動します.
start adbd
インターネットに接続し、netstat-apnを使用してadbdに使用するポート番号を表示します.一般的には5555で、コンピュータの上でadb connect接続を使用してadbを使用することができます.それではadb installを使用してアプリケーションをインストールすることもできます.
そしてpushが上がってきます.
adb pull /mnt/sda/sda1/system.img .
次に、そのタイプを見てみましょう(consoleでmountを使用してもタイプを見ることができます):
$ file system.img
system.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (needs journal recovery) (extents) (large files)
これは私たちがよく知っているext 4で、私たちは完全に直接mountして、それから変更することができます.
変更が完了すると、HiToolsを使用してこのパーティションを再書き込みできます.しかし、HiToolsのHiBurningツールはWindows上で実行する必要があります.そのため、簡単に変更したsystem.img pushをボード上に、直接ddをsystemパーティションに入れることもできます.
その他の情報
海思のボード/トップボックスが起動すると、fastbootの起動、ubootの起動、kernelの起動など、起動プロセスのロゴが印刷されます.
この間に使用するstorageのタイプが提示されます
Fastboot 3.3.0 (arvin@haisi) (Jun 20 2016 - 08:34:09)
Fastboot: Version 3.3.0
Build Date: Jun 20 2016, 08:35:15
CPU: Hi3796Mv100
Boot Media: eMMC
DDR Size: 1GB
SDKのバージョンは、次のようになります.
SDK Version: HiSTBAndroidV600R001C00SPC063_v2016022921
SDKのバージョンによると、私たちは自分でいくつかのものをコンパイルすることができます.
しかし、UBOOTのAutobootのkey interruptが無効になったり、単純ではないd、ctrl+c、spaceなどのボタンに変更されたりして、ubootをdumpしてdisassembleに来ないとubootのコマンドラインに入ることができません.
6311 get key in uboot directly
get key 0 2