Submit Search
Upload
Android カスタムROMの作り方
•
29 likes
•
42,312 views
M
Masahiro Hidaka
Follow
カスタムROMハッカソンでの成果をまとめました。 with @chun_ryo @furusin_oriver @c1e @rey_k @hamatzさん です!
Read less
Read more
Technology
Report
Share
Report
Share
1 of 31
Download now
Download to read offline
Recommended
Android起動周りのノウハウ
Android起動周りのノウハウ
chancelab
カスタムROM開発者の視点から見たAndroid
カスタムROM開発者の視点から見たAndroid
android sola
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Androidの新ビルドシステム
Androidの新ビルドシステム
l_b__
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
Linuxカーネルから紐解くAndroid
Linuxカーネルから紐解くAndroid
demuyan
C#とILとネイティブと
C#とILとネイティブと
信之 岩永
12 分くらいで知るLuaVM
12 分くらいで知るLuaVM
Yuki Tamura
Recommended
Android起動周りのノウハウ
Android起動周りのノウハウ
chancelab
カスタムROM開発者の視点から見たAndroid
カスタムROM開発者の視点から見たAndroid
android sola
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Androidの新ビルドシステム
Androidの新ビルドシステム
l_b__
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
Linuxカーネルから紐解くAndroid
Linuxカーネルから紐解くAndroid
demuyan
C#とILとネイティブと
C#とILとネイティブと
信之 岩永
12 分くらいで知るLuaVM
12 分くらいで知るLuaVM
Yuki Tamura
基礎から学ぶ組み込みAndroid
基礎から学ぶ組み込みAndroid
demuyan
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
こわくない Git
こわくない Git
Kota Saito
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
Kazuyuki TAKASE
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
入門 シェル実装
入門 シェル実装
Yusuke Sangenya
5分で分かるgitのrefspec
5分で分かるgitのrefspec
ikdysfm
An Internal of LINQ to Objects
An Internal of LINQ to Objects
Yoshifumi Kawai
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
Yuki Higuchi
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
健一 茂木
More Related Content
What's hot
基礎から学ぶ組み込みAndroid
基礎から学ぶ組み込みAndroid
demuyan
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
こわくない Git
こわくない Git
Kota Saito
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
Kazuyuki TAKASE
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
入門 シェル実装
入門 シェル実装
Yusuke Sangenya
5分で分かるgitのrefspec
5分で分かるgitのrefspec
ikdysfm
An Internal of LINQ to Objects
An Internal of LINQ to Objects
Yoshifumi Kawai
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
What's hot
(20)
基礎から学ぶ組み込みAndroid
基礎から学ぶ組み込みAndroid
Pythonによる黒魔術入門
Pythonによる黒魔術入門
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
こわくない Git
こわくない Git
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
オブジェクト指向できていますか?
オブジェクト指向できていますか?
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
入門 シェル実装
入門 シェル実装
5分で分かるgitのrefspec
5分で分かるgitのrefspec
An Internal of LINQ to Objects
An Internal of LINQ to Objects
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Similar to Android カスタムROMの作り方
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
Yuki Higuchi
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
健一 茂木
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Wataru NOGUCHI
0621 ndk game
0621 ndk game
cat kaotaro
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
Pf部2012年1月勉強会.androidsola
Pf部2012年1月勉強会.androidsola
android sola
日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)
eijikushida
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
akira6592
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
Tatsuya Ishikawa
ngCore engine for mobage platform
ngCore engine for mobage platform
Toru Yamaguchi
Andoird版OpenCVのJavaサンプルを動かす
Andoird版OpenCVのJavaサンプルを動かす
shobomaru
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
Gruntでjava script前作業の自動化!
Gruntでjava script前作業の自動化!
Tanaka Yuichi
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
DNA Data Bank of Japan center
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
kimukou_26 Kimukou
SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-
Hiromu Yakura
DroidKaigi2016 windows環境での効率的なアプリ開発手法
DroidKaigi2016 windows環境での効率的なアプリ開発手法
tkawashita
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
Naruto TAKAHASHI
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
Yahoo!デベロッパーネットワーク
Similar to Android カスタムROMの作り方
(20)
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
0621 ndk game
0621 ndk game
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
Pf部2012年1月勉強会.androidsola
Pf部2012年1月勉強会.androidsola
日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
ngCore engine for mobage platform
ngCore engine for mobage platform
Andoird版OpenCVのJavaサンプルを動かす
Andoird版OpenCVのJavaサンプルを動かす
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Gruntでjava script前作業の自動化!
Gruntでjava script前作業の自動化!
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-
DroidKaigi2016 windows環境での効率的なアプリ開発手法
DroidKaigi2016 windows環境での効率的なアプリ開発手法
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
More from Masahiro Hidaka
DroidKaigi 2019 WelcomeTalk
DroidKaigi 2019 WelcomeTalk
Masahiro Hidaka
Google I/O 2018 KeynoteとDeveloper KeynoteのOverview
Google I/O 2018 KeynoteとDeveloper KeynoteのOverview
Masahiro Hidaka
DroidKaigi 2018 Android Back to the Future
DroidKaigi 2018 Android Back to the Future
Masahiro Hidaka
DroidKaigi 2018 WelcomeTalk
DroidKaigi 2018 WelcomeTalk
Masahiro Hidaka
KotlinConf Recap
KotlinConf Recap
Masahiro Hidaka
Android Things Latest News / Aug 25, 2017
Android Things Latest News / Aug 25, 2017
Masahiro Hidaka
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~
Masahiro Hidaka
Google I/O 2017 Extended: Android O And Android Studio
Google I/O 2017 Extended: Android O And Android Studio
Masahiro Hidaka
Google I/O 報告会 Overview
Google I/O 報告会 Overview
Masahiro Hidaka
DroidKaigi 2017 welcometalk DAY02
DroidKaigi 2017 welcometalk DAY02
Masahiro Hidaka
DroidKaigi 2017 welcometalk DAY01
DroidKaigi 2017 welcometalk DAY01
Masahiro Hidaka
Androidアプリのストレージ戦略
Androidアプリのストレージ戦略
Masahiro Hidaka
Developers Summit 2017 17-A-7 執筆を支える技術と技術書のトレンド
Developers Summit 2017 17-A-7 執筆を支える技術と技術書のトレンド
Masahiro Hidaka
DroidKaigi - Welcome talk
DroidKaigi - Welcome talk
Masahiro Hidaka
Android Studio First Step Guide
Android Studio First Step Guide
Masahiro Hidaka
Anroid Design Guide 3つのポイント
Anroid Design Guide 3つのポイント
Masahiro Hidaka
Gecko入門 - Introduction to Gecko -
Gecko入門 - Introduction to Gecko -
Masahiro Hidaka
新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る
Masahiro Hidaka
Fxos lt1 shino_merry_mhidaka
Fxos lt1 shino_merry_mhidaka
Masahiro Hidaka
書籍制作でReVIEWを使う実践ワークフロー
書籍制作でReVIEWを使う実践ワークフロー
Masahiro Hidaka
More from Masahiro Hidaka
(20)
DroidKaigi 2019 WelcomeTalk
DroidKaigi 2019 WelcomeTalk
Google I/O 2018 KeynoteとDeveloper KeynoteのOverview
Google I/O 2018 KeynoteとDeveloper KeynoteのOverview
DroidKaigi 2018 Android Back to the Future
DroidKaigi 2018 Android Back to the Future
DroidKaigi 2018 WelcomeTalk
DroidKaigi 2018 WelcomeTalk
KotlinConf Recap
KotlinConf Recap
Android Things Latest News / Aug 25, 2017
Android Things Latest News / Aug 25, 2017
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~
Google I/O 2017 Extended: Android O And Android Studio
Google I/O 2017 Extended: Android O And Android Studio
Google I/O 報告会 Overview
Google I/O 報告会 Overview
DroidKaigi 2017 welcometalk DAY02
DroidKaigi 2017 welcometalk DAY02
DroidKaigi 2017 welcometalk DAY01
DroidKaigi 2017 welcometalk DAY01
Androidアプリのストレージ戦略
Androidアプリのストレージ戦略
Developers Summit 2017 17-A-7 執筆を支える技術と技術書のトレンド
Developers Summit 2017 17-A-7 執筆を支える技術と技術書のトレンド
DroidKaigi - Welcome talk
DroidKaigi - Welcome talk
Android Studio First Step Guide
Android Studio First Step Guide
Anroid Design Guide 3つのポイント
Anroid Design Guide 3つのポイント
Gecko入門 - Introduction to Gecko -
Gecko入門 - Introduction to Gecko -
新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る
Fxos lt1 shino_merry_mhidaka
Fxos lt1 shino_merry_mhidaka
書籍制作でReVIEWを使う実践ワークフロー
書籍制作でReVIEWを使う実践ワークフロー
Recently uploaded
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
Recently uploaded
(9)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
Android カスタムROMの作り方
1.
techbooster.org
日高正博 1
2.
組込エンジニアです? Androidとか 関西が生息圏です techbooster.org みてね Twitter Account @mhidaka 2
3.
Android ADK 組込み プログラミング完全ガイド 執筆しました! 発売中です 電子工作、クラウド連携 がAndroidで出来るよう になりました 3
4.
Androidをカスタマイズ? VPSでビルドしてみよう ほしいAndroidを作ろう
4
5.
カスタムROMの紹介
5
6.
AOSPが提供するソースコードがベース ◦ 通知バーへのWiFiトグル追加などオリジナル機能を提供 ◦ コミュニティが主体となって開発 6
7.
Android Open Source
Project(AOSP)が管理 • コントリビュータ、メーカーエンジニアが改善を提案したり、Forkして 自社製品開発したり。 Google Inner Android Open Source Project コントリビューター Fork メーカー, CustomROM Developer 7
8.
Androidの利点を生かしたまま機能を追加 ◦ システムレベルのメニュー追加、テーマチェンジ ◦ 自分の思うAndroidが作れます! 8
9.
SIMは差さないでください •電波法に触れる可能性が高いです アプリに注意 •Google Mobile Serviceのようなプロプライエタリなアプリケーションの利用
に注意してください。 •変なところからダウンロードしちゃだめです。カスタムROMを使う端末にもと もと入っているアプリを利用を推奨 キャリアやメーカー独自の機能は使えなくなるよ •そもそも保証が無くなるので自己責任のもと実施しましょう 9
10.
カスタマイズしやすい機種 • Galaxy Nexus
/ Nexus S / Nexus One など。 (Googleリファレンス機。おすすめは Galaxy Nexus) メリット • 場合によってはメーカー製Androidよりも安定。追加機能も。 • CyangenModはOSのアップデーターを標準化 • JCROMならシステムレベルのテーマ設定 デメリット • 著作権など法令には注意してね。 目的と異なってダーティなイメージがつくのは良くないです。 10
11.
VPS編
11
12.
ソースコードをビルドしてAndroidの実行イメージを作 成する手順を紹介します AOSP CyanogenMod JCROM Pure Android 12
13.
ビルド環境構築の敷居が異様に高い・・・ パフォーマンス ネットワーク Linux OS • Core i7 QuadCore • ソースコードのダウン • 普通の人は使わない CPU ロードには数時間が OS 必要 • Ubuntu 12.04 • 広大なメモリ空間 16GB,24GB • 最新のAndroidソー 64bit スコードが公開される • SSD • コマンドライン… ごと。 高速ストレージが 256GBは欲しい • たまに落ちてこない そこにシビれたり 、あこがれたりできない…(´・ω・`) 13
14.
元ネタは「ようかんマン」でぐぐってね
14
15.
クラウドの仮想PCを利用することで 初期費用を抑えてビルド環境が作れる 仮想PC 自宅で構築 メンテナンスフリー 手元にあるので安心 高速ネットワーク 通信は既存でOK 手軽に構築/破棄 用途は転用可能 基本的に趣味 そもそも作るのが楽しい 15
16.
カスタムROMハッカソンでGMOさんにVPSをもらったので使ってみました。 その分割り引いて見てね ちょっと使ってみるならAmazon EC2をおすすめ。 VPS使うのはガチ勢だけでは… • インスタンス型 • ~月額7980円 • ~月額15,880円 • 1時間0.6ドル程度 • 6CPU/8GB/800GB • 10CPU/16GB/1TB Amazon さくらインター GMO(お名 EC2 ネット 前.com) 16
17.
作業ディレクトリの準備 $ mkdir -p ~/jcrom_work $ export ANDROID_ROOT=~/jcrom_work ソースコードのダウンロード $ cd $ANDROID_ROOT $ repo init -u https://bitbucket.org/sola/jcrom_manifest -m jcrom_jb-master.xml $ repo sync –j8 通常、数時間かかるところがVPSだと30分で終わり! ちなみにプロキシ有りネットワークだと1日かかるorz https://sites.google.com/site/jcromproject/home 17
18.
ソースコードの無いバイナリファイルのダウンロード $ wget https://dl.google.com/dl/android/aosp/broadcom-maguro- jro03h-4cc54d09.tgz $ wget https://dl.google.com/dl/android/aosp/imgtec-maguro- jro03h-827bcb4c.tgz $ wget https://dl.google.com/dl/android/aosp/invensense-maguro- jro03h-682067a4.tgz $ wget https://dl.google.com/dl/android/aosp/samsung-maguro- jro03h-0655880b.tgz $ tar zxvf broadcom-maguro-jro03h-4cc54d09.tgz $ tar zxvf imgtec-maguro-jro03h-827bcb4c.tgz $ tar zxvf invensense-maguro-jro03h-682067a4.tgz $ tar zxvf samsung-maguro-jro03h-0655880b.tgz $ ./extract-broadcom-maguro.sh $ ./extract-imgtec-maguro.sh $ ./extract-invensense-maguro.sh $ ./extract-samsung-maguro.sh https://sites.google.com/site/jcromproject/home18
19.
端末から必要なファイルを吸い出す $ cd $ANDROID_ROOT/jcrom/samsung/maguro/proprietary/ $ ./extract-files.sh ccache の設定 設定しておくと、2回目以降のビルド時間を短縮出来る。 $ export USE_CCACHE=1 $ $ANDROID_ROOT/prebuilts/misc/linux-x86/ccache/ccache -M 50G ※Galaxy Nexusの場合、端末からデータを取り出す必要があります VPS上では出来ないので注意 https://sites.google.com/site/jcromproject/home19
20.
Androidのビルド $ cd $ANDROID_ROOT $ source build/envsetup.sh $ lunch full_maguro-userdebug $ make –j16 GMOのVPSではj16オプションを付けて、初回ビルド37分でした Xeon 8コア論理16 / 24GBマシンで25分、普通のPCなら数時間コース recovery mode で書き込む為のデータを作成する $ cd $ANDROID_ROOT $ make otapackage https://sites.google.com/site/jcromproject/home20
21.
カスタムROMハッカソン編
21
22.
Androidをカスタマイズするチャレンジングなハッカソン。 そもそもビルドに数時間…ということでVPSの出番 22
23.
23
24.
大きなお友達のハートをがっちりつかむケータイがほしい AKBフォンとか。プリキュアフォンとか。ROMの入れ替えで変身できるのであれば需要があるかも?
ちょっと、おちつけ。 でも機能をカスタマイズできるのは良いかもしれない。 ソフトウェアキーで機能を割り当てるとかどう? あ、いいかも。アプリごとに動きを変えるとか? 固定じゃ無くて色々変更したいし、動きを決めるのは面倒だからサジェストしたい 24
25.
Android フレームワークを変更して、ボタンを追加する 単純なボタンではなく動作を決めたい サジェストできるようにボタン押下イベントが欲しい • たとえばどんな風に動きを変えたい? •
Mapをみてるなら特定の場所からの一発ルート検索 • ウェブサイトを見てれば特定の言葉で検索 • YouTubeなら動画、ツイッターならハッシュタグをみるなど 25
26.
SystemUI.apk ◦ 画面全体を提供している特殊な アプリケーション イメージ図 Application キ ー イ SystemUI ベ ン ト の 通 フレームワーク 知 26
27.
ハードウェアキー ◦ Home、Backキーなどは キーコードが割り当てられ Application ている <Serviceを追加> ソフトウェアキー SystemUI ◦ 通知はハードウェアと違い、 独自のインテントを イベント化されている <ボタン追加> 発行する。 インテントを使うメリット アプリ側で動作を規 定できるメリット ◦ アプリ側で動作を決められ フレームワーク る。アップデートできる。入 れ替えもできる。 27
28.
SystemUI¥src¥com¥android¥systemui¥statusbar¥phone¥ PhoneStatusBar.java private View.OnClickListener mMomokuroClickListener = new View.OnClickListener() { public void onClick(View v) { Intent intent = new Intent(); intent.setAction("net.momoclo.action.SUGGEST"); v.getContext().sendBroadcast(intent); } }; カスタムキー用のonClickListnerを作成 独自の暗黙的インテントをブロードキャストする ※この場所でこの実装で正しいかはNoっぽい 28
29.
SystemUI¥src¥com¥android¥systemui¥statusbar¥phone¥ PhoneStatusBar.java private void prepareNavigationBarView() { mNavigationBarView.reorient(); mNavigationBarView.getRecentsButton() .setOnClickListener(mRecentsClickListener); mNavigationBarView.getRecentsButton() .setOnTouchListener(mRecentsPanel); mNavigationBarView.getExpandButton() .setOnClickListener(mExpandClickListener); mNavigationBarView.getMomokuroButton() .setOnClickListener(mMomokuroClickListener); mNavigationBarView.getHomeButton() .setOnTouchListener(mHomeSearchActionListener); updateSearchPanel(); } 29
30.
public class WhatsTop
extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { ComponentName name = Util.getTopActivity(arg0); Intent intent = new Intent(Intent.ACTION_SEARCH); PackageManager manager = arg0.getPackageManager(); List<ResolveInfo> list = manager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); try{ for(int i = 0; i < list.size(); i++){ ResolveInfo info = list.get(i); String packageName = info.activityInfo.packageName; if(packageName.equals(name.getPackageName())){ android.util.Log.e("debug", "たいおうしています!"); intent.setComponent(name); intent.putExtra("query", "ももくろ"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); arg0.startActivity(intent); suggested = true; break; } if(!suggested){ Toast.makeText(arg0, "ももくろ関連情報はみつかりません", Toast.LENGTH_SHORT).show(); } } 30
31.
ね、簡単でしょう? カスタマイズに興味を持った人はチャレンジしてください! カスタムROMハッカソンの成果は • @chun_ryo @furusin_oriver
@c1e @rey_k @hamatzさんたちと 一緒にやりました! 31
Download now