Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Androidを自由にカスタマイズしたい~!
Search
HalunoYo.
October 10, 2024
40
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Androidを自由にカスタマイズしたい~!
HalunoYo.
October 10, 2024
More Decks by HalunoYo.
See All by HalunoYo.
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
110
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
12
39k
Mobile First: as difficult as doing things right
swwweet
225
10k
How to Talk to Developers About Accessibility
jct
2
530
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Speed Design
sergeychernyshev
33
2.1k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
So, you think you're a good person
axbom
PRO
2
2.1k
First, design no harm
axbom
PRO
2
1.3k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Transcript
Androidを自由にカスタマイズしたい~! date: 10/11/2024 event: shibuya.apk#49
自己紹介 名前: SNS: 趣味: 資格: Kato Haruto(23) @aoi-sec チェス /
アプリ開発 / 読書 / 食べること Google Cloud Digital Leader Google Cloud Associate Cloud Engineer Google Cloud Professional Security Engineer その他(FE, AP, SC)
突然ですが...
AnroidOpenSourceProjectのこと。 Android自体はOSSでありインターネットに一般公開されている。 つまり、自分で色々カスタマイズすることが可能。 公式ドキュメント:https://source.android.com/docs AOSPってなーに?
複合的な構造からなる。 各種コード全て公開済み AOSPってなーに? 改造できるじゃん!!
ざっくりな手順は? Androidコード取得 コードを変更 イメージビルド 端末へ書き込み
今回はやることは...
設定アプリから確認できる、 Android versionを任意の値に変更したい 今回やることは...
そのまえに ビルドに必要なスペックを...
公式ドキュメントみると...、 そのまえに...
None
スペックは下記 o マシンタイプ:t2d-standard-48 o メモリ:192GB o ディスク:バランス永続ディスク500GB Compute Engine(Google Cloud)使うか~
コード修正
全然分からん。何が何を示しているのか...。 日本語文献は少数なので海外文献や自分で触ったりした結果... コード修正 取得したAOSPコードのトップ階層にてlsしてみたけど...
コード修正 developers 開発者向けサンプルとかが置かれている hardware HAL(ハードウェア抽象化レイヤー) ... packages プリインストールアプリや初期壁紙など初期設 定に関するものありそう!! 各フォルダの特徴が何個か分かってきた!
コード修正 packages/apps内に「Settings」というフォルダがある。 こいつは怪しい!
コード修正 ソースコードを愚直にみても深すぎてしんどい。 ネット上で公式が便利なサイトを提供してくれている。 Android Code Search : https://cs.android.com/android 詳細条件指定してコード検索が出来るので探索効率UP!!
コード修正 試しにSettings下にて"Android version"で検索するとヒット。 strings.xmlに書かれてることに加えて言語毎で分かれてる
コード修正 firmware_versionで検索す ると、my_device_info.xml が出現 バッテリーやIPがあることから本体情報のレイアウトで確定?
コード修正 使用しているコントローラー及びフラグメントを見てみる。 ・FirmwareVersionPreferenceController(コントローラー) ・FirmwareVersionSettings(フラグメント) Build.hoge系は一般開発でも参照するし、 Build.VERSIONとあるので更に怪しい
コード修正 ... いた!!(build/core/version_defaults.mk)
イメージビルド
イメージビルド ビルドしてイメージ作成。 → Qiitaに記事投稿済みです!
端末へ書き込み
端末へ書き込み イメージが出来上がった! Compute Engine上からイメージを取り出すため、 "gcloud compute scp"コマンドを実行してホストマシンへダウンロード
端末へ書き込み 実端末を用意出来なかったので、AVDにインストール! AppData/Local/Android/Sdk/system-images参照。 このなかにAndroid Studioにて使用しているAVDがある。
端末へ書き込み 例)android-33の場合 android-33/google_apis/x86_64 x86_64フォルダを取得したフォルダのものに置換 AVD起動してみる!!
端末へ書き込み きた!!!!
最後に AOSPは下記の観点から難易度は高め。 ・資料が少ない ・ソースコードが非常に複雑で追うのが困難 ・ビルド要求を満たすマシンの用意が大変 ・環境構築の過程でビルドエラー発生すると難航確定 ただ...
最後に オリジナリティ高いOS作れるしやりがい最高 ・ブートアニメーション変更 ・アプリのレイアウト変更 ・その他root化しないと出来ないようなことが色々
ご清聴ありがとうございました!