チャレンジパッドNeo(TAB-A05-BD)

ページ名:TAB-A05-BD

チャレンジパッドNeo(TAB-A05-BD)は2020年12月に登場したBenesseの学習用タブレット。製造は三洋テクノソリューションズ鳥取が行っている。

スペック

型番 TAB-A05-BD
製造元 三洋テクノソリューションズ鳥取 (STS-Tottori)
SoC MT8168A
GPU ARM Mali G52 MC1
チップメーカー MediaTek
RAM 4GB
ROM 16GB
ディスプレイ 1200x1920 タッチパネル(wacom I2C)

OS

Android 9

最新ビルド 01.11.000 (WebViewの変更)
無線LAN CONSYS_MT8168
Bluetooth あり
その他 USB mini B 、イヤホンジャック、マイク、microSDカードリーダー
センサー 加速度計
カメラ前面

写真:  4.9MP 2560x1920

オートフォーカス

フラッシュなし

カメラ背面

写真:  4.9MP 2560x1920

オートフォーカス

フラッシュなし

内蔵スピーカー あり

画像

誰か貼ってください

root化

2022/07/05時点で不能。脆弱性を利用した手法は別のページに記載しています。

通常Android化

初期化済み端末の場合:https://github.com/mouseos/Cpad_dcha_3_changer

dcha_state の値を 3 にする事で開発者向けオプションを開けるようにしている。

カスタムROM

ブートローダーのアンロックさえできればTreble A onlyのromが焼ける

ブートローダー

little kernel使用

アンロック

fastboot oem flashing unlock/unlock_criticalが利用可能だが開発者向けオプション→OEMロック解除が存在しない為ロック解除ができない。

OEMコマンド

oem keystore

用途不明

oem keystore [半角27文字のなにかを入力]

oem p2u

uart出力のon offを切り替える

oem p2u [on/off]

oem reboot-recovery

リカバリに再起動する

oem off-mode-charge

oem key

md5hashか何かを書き込む。nokia端末ではブートローダーアンロックに使用

oem key [半角32文字]

oem lks

fastbootのアンロック状態を表示

oem ultraflash:

アンロック時のみ使用可能。flashとの違いは不明。アンロック時のみ可能。

system にsystem.imgを焼く場合。

oem ultraflash:system system.img

oem ultraflash_en

ultraflashを利用可能にする。

fastboot signature .\signature

256byteの何かを書き込む

fastboot signature .\signature
Sending 'signature' (0 KB)                         OKAY [  0.016s]
installing signature                               FAILED (remote: 'not support on security')
fastboot: error: Command failed

リカバリーモード

ベネッセ独自のリカバリーモードが起動する。できることは初期化と自己破壊処理の2つ。バイナリ内にはMediatekの標準リカバリのデータが多く残存しているため何らかの方法で呼び出せる可能性はある。

自己破壊処理

AbandonSetupActivityに決められたパスワードを入力して実行する

リカバリがパスワードが正しいか確認する

mmcblk0を吹き飛ばして破壊完了

隠し設定

Feature flag

settings_about_phone_v2

タブレット情報画面のレイアウト

デフォルト

settings put global settings_about_phone_v2 false

有効化

settings put global settings_about_phone_v2 true

settings_audio_switcher

不明

settings_bluetooth_while_driving

接続→接続の設定→運転時にBluetoothを使用 を有効にする

デフォルト

settings put global settings_bluetooth_while_driving false

有効

settings put global settings_bluetooth_while_driving true

settings_component_name

不明

settings_data_usage_v2

データ使用量画面のレイアウト

デフォルト

settings put global settings_data_usage_v2 false

有効化

settings put global settings_data_usage_v2 true

settings_package

不明

settings_systemui_theme

テーマ選択機能の有効化(見た目だけで動作せず)

デフォルト

settings put global settings_systemui_theme false

有効化

settings put global settings_systemui_theme true

settings_wifi_speed_labels

変化なし

settings_with_drawer

変化なし

settings_zone_picker_v2

タイムゾーン選択画面のレイアウト変更

デフォルト

settings put global settings_zone_picker_v2 false

有効

settings put global settings_zone_picker_v2 true

settingsdebug.instant.packages

https://android.googlesource.com/platform/frameworks/base/+/master/packages/SettingsLib/src/com/android/settingslib/applications/AppUtils.java

で設定値を読み取っているらしいが不明。

デバイスツリー

別ページに記載

デバイスツリーの逆コンパイル方法

1,Neoのファームウェアアップデートファイルからdtbo.img を抜き出す。

2,binwalk --dd='.*' dtbo.img

3,cd _dtbo.img.extracted

4,dtc -I dtb -O dts -o  dtbo.dts 40

preloader

NeoはMediaTek製SoC搭載のため、preloaderモードがある。preloaderモードでは次のことができます。
この記事の内容は未検証ですがチャレンジパッド3、Nextでも通用すると思います。
1,metaモード、factoryモード、advanced metaモード、fastbootに入る
2,パーティションのバックアップ(現時点で不可)
3,パーティションへのイメージファイル書き込み(現時点で不可)

専用のダウンロードエージェントが必用なためSP Flash Toolの利用は不可です

 

preloaderモードへの入り方

電源を切った後USB接続するだけです。3秒ほどpreloaderモードに入ります。その間にpreloaderモードを使用した操作を行えばpreloaderモードが維持されます。

1の各モードへの入り方

1,mtk-bootseq.pyをダウンロード。
https://gist.github.com/plugnburn/b3b0bcfd926c48ec5373bea84ce59337
2,Linuxの場合以下のコマンドを実行する
python mtk-bootseq.py モード /dev/ttyACM0
Windowsの場合は/dev/ttyACM0を変更する必用がある。どうするかはよくわかってない。
「モード」の部分には以下のものを入れます。

モード名 「モード」部分に入れる文字 機能
METAモード METAMETA 起動画面で固まり、adb shellが有効になる。adb installや設定変更などは機能しない。imeiやシリアル番号の変更ができるらしい
Advanced METAモード ADVEMETA METAモードと同じ
FASTBOOTモード FASTBOOT FASTBOOTコマンドが使用できるようになる。書き込みや消去はアンロックが必須だが今の所アンロックは成功していない。
Factoryモード FACTFACT ハードウェアの動作テストができる。中国語の文字が表示される。
ATE signaling test? FACTORYM ATE signaling testが表示される。用途がよくわからない。

Factoryモード

 

ATE signaling test

2と3のバックアップとフラッシュ

この機能は専用のダウンロードエージェントが必用なため機能しない。
脆弱性をついてブートローダーのアンロックなどを行えるmtkclientはmt8168がサポートされているが、今の所誰もブートローダアンロックに成功していない(いくつか状態が変化するもののエラーなどが発生)。
開発者の方によるとFireタブレットなど"fused"なデバイスではmtkclientが対応できないそうだが、チャレンジパッドが"fused"であるかどうかは不明である。

開発者に聞いたところmtk bruteコマンドを実行して得られたファイルを送れば対応させることが可能とのことだったがmtk brute自体が実行できない -> 開発者がタブレットを買って対応させたらしい。

Scatterファイル(wwr mtkで作成)

このファイルは現時点では使用不可だが今後何らかの書き込む方法が見つかった場合には機能すると思われる。ファイルはupdate.zip内のscatter.txtをwwr mtkで改変したもの。

#########################################__WwR_MTK_2.50__###################################################
#
# General Setting
#
#########################################__WwR_MTK_2.50__###################################################
- general: MTK_PLATFORM_CFG
info:
- config_version: V1.1.2
platform: MT8168
project: WwR_Testing
storage: EMMC
boot_channel: MSDC_0
block_size: 0x20000
############################################################################################################
#
# Layout Setting
#
############################################################################################################
- partition_index: SYS0
partition_name: preloader
file_name: preloader.img
is_download: true
type: SV5_BL_BIN
linear_start_addr: 0x0
physical_start_addr: 0x0
partition_size: 0x0
region: EMMC_BOOT_1
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: BOOTLOADERS
is_upgradable: true
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS1
partition_name: pgpt
file_name: pgpt.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x0
physical_start_addr: 0x0
partition_size: 0x80000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS2
partition_name: proinfo
file_name: proinfo.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x80000
physical_start_addr: 0x80000
partition_size: 0x300000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS3
partition_name: boot_para
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x380000
physical_start_addr: 0x380000
partition_size: 0x100000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS4
partition_name: cam_vpu1
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x480000
physical_start_addr: 0x480000
partition_size: 0xF00000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: true
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS5
partition_name: cam_vpu2
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x1380000
physical_start_addr: 0x1380000
partition_size: 0xF00000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: true
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS6
partition_name: cam_vpu3
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x2280000
physical_start_addr: 0x2280000
partition_size: 0xF00000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: true
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS7
partition_name: nvram
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x3180000
physical_start_addr: 0x3180000
partition_size: 0x500000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS8
partition_name: protect1
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x3680000
physical_start_addr: 0x3680000
partition_size: 0xA00000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS9
partition_name: protect2
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x4080000
physical_start_addr: 0x4080000
partition_size: 0xA00000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS10
partition_name: persist
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x4A80000
physical_start_addr: 0x4A80000
partition_size: 0x3000000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS11
partition_name: nvcfg
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x7A80000
physical_start_addr: 0x7A80000
partition_size: 0x800000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS12
partition_name: seccfg
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x8280000
physical_start_addr: 0x8280000
partition_size: 0x40000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS13
partition_name: lk
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x82C0000
physical_start_addr: 0x82C0000
partition_size: 0x100000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: true
empty_boot_needed: true
reserve: 0x00

- partition_index: SYS14
partition_name: lk2
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x83C0000
physical_start_addr: 0x83C0000
partition_size: 0x100000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: true
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS15
partition_name: boot
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x84C0000
physical_start_addr: 0x84C0000
partition_size: 0x1000000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: true
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS16
partition_name: recovery
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x94C0000
physical_start_addr: 0x94C0000
partition_size: 0x1000000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: true
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS17
partition_name: para
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0xA4C0000
physical_start_addr: 0xA4C0000
partition_size: 0x80000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS18
partition_name: logo
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0xA540000
physical_start_addr: 0xA540000
partition_size: 0x800000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: true
reserve: 0x00

- partition_index: SYS19
partition_name: dtbo
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0xAD40000
physical_start_addr: 0xAD40000
partition_size: 0x800000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: true
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS20
partition_name: expdb
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0xB540000
physical_start_addr: 0xB540000
partition_size: 0xA00000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS21
partition_name: frp
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0xBF40000
physical_start_addr: 0xBF40000
partition_size: 0x100000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS22
partition_name: nvdata
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0xC040000
physical_start_addr: 0xC040000
partition_size: 0x2000000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS23
partition_name: tee1
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0xE040000
physical_start_addr: 0xE040000
partition_size: 0x500000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: true
empty_boot_needed: true
reserve: 0x00

- partition_index: SYS24
partition_name: tee2
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0xE540000
physical_start_addr: 0xE540000
partition_size: 0x500000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: true
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS25
partition_name: kb
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0xEA40000
physical_start_addr: 0xEA40000
partition_size: 0x200000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS26
partition_name: dkb
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0xEC40000
physical_start_addr: 0xEC40000
partition_size: 0x200000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS27
partition_name: metadata
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0xEE40000
physical_start_addr: 0xEE40000
partition_size: 0x2000000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS28
partition_name: vbmeta
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x10E40000
physical_start_addr: 0x10E40000
partition_size: 0xB40000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: true
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS29
partition_name: system
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x11980000
physical_start_addr: 0x11980000
partition_size: 0x54400000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: true
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS30
partition_name: vendor
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x65D80000
physical_start_addr: 0x65D80000
partition_size: 0x19000000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: true
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS31
partition_name: factory
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x7ED80000
physical_start_addr: 0x7ED80000
partition_size: 0x1000000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS32
partition_name: cache
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0x7FD80000
physical_start_addr: 0x7FD80000
partition_size: 0x40000000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS33
partition_name: userdata
file_name: dummy.img
is_download: true
type: NORMAL_ROM
linear_start_addr: 0xBFD80000
physical_start_addr: 0xBFD80000
partition_size: 0x0
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
is_upgradable: false
empty_boot_needed: false
reserve: 0x00

- partition_index: SYS34
partition_name: sgpt
file_name: dummy.img
is_download: false
type: NORMAL_ROM
linear_start_addr: 0xFFFF0000
physical_start_addr: 0xFFFF0000
partition_size: 0x0
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: false
is_reserved: true
operation_type: RESERVED
is_upgradable: false
empty_boot_needed: false
reserve: 0x00


BOOTROMモード

以下のようにすると入れる。

※MT8168にはパッチが充てられていてDAAを無効にできないため、MTKClientによるブートローダーアンロックは不可能。

 

シリアル

eMMC


 

ソースコード

https://github.com/soralis0912/cpad-TAB-A05-BD

 

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する