チャレンジパッドNeo(TAB-A05-BD)は2020年12月に登場したBenesseの学習用タブレット。製造は三洋テクノソリューションズ鳥取が行っている。
スペック
型番 | TAB-A05-BD |
製造元 | 三洋テクノソリューションズ鳥取 (STS-Tottori) |
SoC | MT8365V(表記上MT8168A) |
GPU | ARM Mali G52 MC1 |
チップメーカー | MediaTek |
RAM | 4GB |
ROM | 16GB(klmag1jetd-b041) |
ディスプレイ | 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化
脆弱性を用いてブートローダーアンロック後magiskを焼く
今までに試して失敗したもの一覧は別のページに記載している。
Magisk を使用した root 化及び GApps の導入ページは こちら を参照してください。
通常Android化(改造)
初期化済み端末の場合:https://github.com/mouseos/Cpad_dcha_3_changer
dcha_state の値を 3 にする事で開発者向けオプションを開けるようにしている。
開発者向けオプション
上記の方法で開くことができる。dcha_stateが3以外の場合はパスワードが必要になる。パスワードはsha256でハッシュ化されて保管されているため解析は容易ではない。半角英数字1から5文字の範囲にはないことが総当りで確認されている。
カスタムROM
Treble ab arm64 の ROM が焼ける。vbmetaの検証解除後recoveryにboot.imgを焼く必要がある。
リカバリー
Android側から初期化を実行後、 ワイプ中に音量+を押しながら電源ボタンを押すと、 Android標準のリカバリーを起動できる。
これはリカバリーから直接初期化した時は出来ない。
ブートローダー
Little Kernel使用
アンロック
fastboot oem flashing unlock/unlock_criticalが利用可能。
開発者向けオプション→OEMロック解除が存在しない為通常の方法でロック解除ができないが以下の方法で可能となる。
- CVE-2022-38181 を用いて SELinux の状態を Permissive にする
- DchaService の脆弱性を使い system権限 で FRP パーティションを抜き出す
- バイナリエディタで一番最後の部分を 00 から 01 に変更
- 同じく DchaService の脆弱性で FRP を焼き戻す
- bootloader に再起動し、fastboot flashing unlock
詳細な方法と必要なプログラム
https://github.com/SmileTabLabo/CVE-2022-38181
OEMコマンド
oem keystore
用途不明
oem keystore [半角27文字のなにかを入力]
oem p2u
uart出力のon offを切り替える。onの場合はexpdbパーティションにUART出力と同一のものが保存される
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_audio_switcher
不明
settings_bluetooth_while_driving
接続→接続の設定→運転時にBluetoothを使用 を有効にする
デフォルト
有効
settings_component_name
不明
settings_data_usage_v2
データ使用量画面のレイアウト
デフォルト
有効化
settings_package
不明
settings_systemui_theme
テーマ選択機能の有効化(クイック設定パネルとサードパーティ製アプリで動作)
デフォルト
有効化
settings_wifi_speed_labels
変化なし
settings_with_drawer
変化なし
settings_zone_picker_v2
タイムゾーン選択画面のレイアウト変更
デフォルト
有効
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,パーティションのバックアップ(sgptとbrom以外は可)
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がサポートされているが、DAA が有効なため、使用不可。
しゅーご追記:DAA 有効なので無理
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/s1204IT/CTX_SourceCode
コメント
最新を表示する
ruu-to化をできました!
分かりました
>> 返信元
https://x.gd/I28O8このようにroot化などに一瞬だけ使用するならそれで大丈夫です。普通にアプリを入れる手段としてはあまり適していないので、普通のアプリを入れる場合はチャレンジタッチ総合開発ツールを入れて、アプリを入れましょう
>> 返信元
普通にAndroidタブレットとして使用
>> 返信元
何の作業をしたいかです。それを書いてもらえればもう少しアドバイスのしようがあります
SDカードってバイパスしてなにかアプリさえ入れれば抜いていいんですか?
ここにありますhttps://x.gd/j0iNg
こんばんは。このタブレットにGooglePlayをインストールすることは可能でしょうか。可能でしたら、方法を教えていただけますでしょうか。
よろしくお願いいたします。
>> 返信元
エラーコードTE51-31U2-6025とでてきますSDカードがおかしくなって居るのでしょうか?DchaStateChanger及びNovaDirectlnstallerでの改造昨日が有効です(試験的)は出てきてます
>> 返信元
SDカードを抜いて最初の更新は出来ます
Charlesでファイルを入れようとしたところUnable to parse the content of file 'test_environment_info.ml. Please ensure you have selected a valid Charles settings file.と出てきて出来ませんどうすれば良いですか?またmicroSDカードに入れる方法だとチャレンジタッチ本体の赤いバーが出てくる更新が出来ないですどうすれば良いでしょうか?
NG表示方式
NGID一覧