{"id":19380027,"url":"https://github.com/hisano/aosp-research-toolkit","last_synced_at":"2025-09-07T04:37:52.629Z","repository":{"id":92155415,"uuid":"62895540","full_name":"hisano/aosp-research-toolkit","owner":"hisano","description":"AOSP(Android Open Source Project) Research Toolkit","archived":false,"fork":false,"pushed_at":"2018-08-12T04:04:38.000Z","size":19,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-18T11:53:38.425Z","etag":null,"topics":["adb","android","aosp","eclipse"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hisano.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-07-08T14:42:06.000Z","updated_at":"2025-01-13T22:16:54.000Z","dependencies_parsed_at":"2023-03-12T14:16:45.550Z","dependency_job_id":null,"html_url":"https://github.com/hisano/aosp-research-toolkit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hisano/aosp-research-toolkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hisano%2Faosp-research-toolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hisano%2Faosp-research-toolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hisano%2Faosp-research-toolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hisano%2Faosp-research-toolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hisano","download_url":"https://codeload.github.com/hisano/aosp-research-toolkit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hisano%2Faosp-research-toolkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273997098,"owners_count":25204473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adb","android","aosp","eclipse"],"created_at":"2024-11-10T09:12:05.260Z","updated_at":"2025-09-07T04:37:52.614Z","avatar_url":"https://github.com/hisano.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AOSP (Android Open Source Project) Research Toolkit\n\nAOSP Research Tookitは、AOSPのソースコード調査を支援するツールです。  \nAOSPのファイル群から、調査用のEclipseプロジェクトを生成するツールを中心に、下記のような作業(一例)をサポートします。\n\n* アプリからフレームワークまで、一気通貫でJavaソースコードを辿る\n* Androidバージョンごとの違いを把握する\n* 実機を用いてシステムサービスをデバッグする\n\nAOSP Research Tookitの利用方法ですが、下記の二通りの方法があります。\n\n||AOSPから生成されたEclipse・IntelliJプロジェクトを利用|[AOSP](http://source.android.com/source/requirements.html)をビルドした後、AOSP Research Tookitのツールを用いて、Eclipseプロジェクトを生成して利用|\n|---|---|---|\n|メリット|すぐに調査が可能|自由にバージョンを選んで調査が可能|\n|デメリット|用意されたAndroidバージョンでしか調査できない|ソースコードのダウンロード・ビルド等々、事前準備に相当な時間がかかる|\n\n## AOSPから事前生成されたIntelliJプロジェクトを利用\n\n### :black_small_square:準備\n\nAndroid 2.3から8.0のソースコードを含む下記プロジェクトをダウンロード後、解凍してIntelliJで開いてください。\n\nhttp://files.hisano.jp/aosp/aosp.zip\n\n### :black_small_square:Eclipseと比べたIntelliJを使うメリット\n\n* Javaのコンパイル時に展開されてしまう定数も正しく検索結果に表示\n* Javaのリフレクション経由のコードも検索結果に表示\n* 複数のAndroidバージョンをまたがって、クラス・メソッド等の利用場所を検索可能\n\n## AOSPから事前生成されたEclipseプロジェクトを利用\n\n### :black_small_square:準備\n\n下記から、調査したいバージョンのファイル名をクリックしてダウンロードしてください。  \n\n\u003e :warning: Nexus端末等での実機デバッグを行うためには、書き込むファームウェアとAndroidバージョンを一致させる必要があります。  \n\u003e https://source.android.com/source/build-numbers.html  \n\u003e https://developers.google.com/android/nexus/images  \n\n\u003e :warning: 複数のAndroidバージョンを比較したい場合には、複数ファイルをダウンロードしてください。  \n\n|Androidバージョン|ファイル|Nexus端末向けファームウェアでのバージョン|\n|---|---|---|\n|9.0.0 r1|[android-9.0.0_r1.zip](http://files.hisano.jp/aosp/android-9.0.0_r1.zip)|PPR1.180610.009|\n|8.0.0 r1|[android-8.0.0_r1.zip](http://files.hisano.jp/aosp/android-8.0.0_r1.zip)|OPR6.170623.010|\n|7.1.1 r1|[android-7.1.1_r1.zip](http://files.hisano.jp/aosp/android-7.1.1_r1.zip)|NMF26F|\n|7.0.0 r1|[android-7.0.0_r1.zip](http://files.hisano.jp/aosp/android-7.0.0_r1.zip)|NRD90M|\n|6.0.0 r1|[android-6.0.0_r1.zip](http://files.hisano.jp/aosp/android-6.0.0_r1.zip)|MRA58K|\n|5.1.0 r1|[android-5.1.0_r1.zip](http://files.hisano.jp/aosp/android-5.1.0_r1.zip)|LMY47D|\n|5.0.1 r1|[android-5.0.1_r1.zip](http://files.hisano.jp/aosp/android-5.0.1_r1.zip)|LRX22C|\n|4.4 r1|[android-4.4_r1.zip](http://files.hisano.jp/aosp/android-4.4_r1.zip)|KRT16M|\n|4.3 r1.1|[android-4.3_r1.1.zip](http://files.hisano.jp/aosp/android-4.3_r1.1.zip)|JWR66Y|\n|4.2.1 r1|[android-4.2.1_r1.zip](http://files.hisano.jp/aosp/android-4.2.1_r1.zip)|JOP40D|\n|4.1.2 r1|[android-4.1.2_r1.zip](http://files.hisano.jp/aosp/android-4.1.2_r1.zip)|JZO54K|\n|4.0.3 r1|[android-4.0.3_r1.zip](http://files.hisano.jp/aosp/android-4.0.3_r1.zip)|IML74K|\n|2.3.4 r1|[android-2.3.4_r1.zip](http://files.hisano.jp/aosp/android-2.3.4_r1.zip)|GRJ22|\n\nファイルのダウンロード後、各ファイルごとに下記の手順でEclipseにインポートしてください。\n\n1. Eclipseの[File - Import...]メニューから、\"Existing Projects into Workspace\"を選択\n2. \"Select archive file\"フィールドに上記でタウンロードしたファイルを指定して\"Finish\"を押下\n\n### :black_small_square:現在表示しているアクティビティから処理を調査(ソースコード調査の一例)\n\n1. コマンドプロンプト等で\"adb shell dumpsys activy top\"を実行\n2. 上記の出力結果のACTIVITY行から、現在表示しているアクティビティのクラス名を取得\n    + 例) Nexus 5 + Android 6で電卓アプリを表示している時には、\"ACTIVITY com.google.android.calculator/com.android.calculator2.Calculator f98e77c pid=5041\"となるため、\"/\"以降の\"Calculator\"がクラス名 \n3. [Navigate - Open Type...]メニューから\"Calculator\"クラスを開く\n4. Eclipseのソースコードを辿る機能を利用して調査\n    + [フィールドやメソッド一覧を表示(Quick Outline機能)](http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2FgettingStarted%2Fqs-Quickviews.htm)\n    + [クラス階層を表示(Quick Type Hierarchy機能)](http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2FgettingStarted%2Fqs-6.htm)\n    + [パンくずリストで同一パッケージのクラスを表示(Show in Breadcrumb機能)](http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fref-java-editor-breadcrumb.htm)\n    + [メソッド等の処理を表示(Open Declaration機能)](http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2FgettingStarted%2Fqs-Navigate.htm)\n    + [上記以外の検索機能](http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftips%2Fjdt_tips.html\u0026anchor=searching_section)\n\n### :black_small_square:特定アプリの起点となるアクティビティやサービスから調査\n\n1. コマンドプロンプト等で\"adb shell pm list packages\"で、インストールされているアプリのアプリ名を調査\n2. コマンドプロンプト等で\"adb shell dumpsys package [アプリ名]\"を実行して、アクティビティ・サービス・インテントフィルタ等のクラス名を調査\n    + AOSPの各アプリのAndroidManifest.xml等や、[apktool](http://ibotpeaches.github.io/Apktool/)での調査も可能\n3. 前項の手順でソースコードを調査\n\n### :black_small_square:Nexus端末を用いた実機デバッグ\n\n1. [Nexus端末向けのファームウェア](https://developers.google.com/android/nexus/images)をダウンロード\n2. 上記を解凍した後、さらに\"image-\u003c端末コード名\u003e-\u003cバージョン\u003e.zip\"を解凍してboot.imgを取得\n3. boot.imgを[bootimg](http://dark-cyanide-devs.blogspot.jp/2015/01/port-bootimg.html)等でアンパックして、\"/default.prop\"ファイルの\"ro.debuggable=0\"を\"ro.debuggable=1\"に変更した後にリパック\n    + アンパック例) bootimg.exe --unpack-bootimg\n    + リパック例) bootimg.exe --repack-bootimg\n4. 上記でリパックしたboot.imgをfastbootコマンドで書き込み\n    + ブートローダへの移行例) adb reboot bootloader\n    + 書き込み例) fastboot flash boot boot-new.img\n5. 端末を再起動\n    + 再起動例) fastboot reboot\n6. ADT Plugin for Eclipse又はDDMSの\"Devices\"ビューでデバッグ対象のプロセスを選択(デバッガ接続用の8700ポートをオープン)\n7. [Run - Debug Configurations...]メニューから\"Remote Java Application - Debug Selected Process in 'Devices' View with 'android-2.3.4_r1' Project\"を選択して\"Debug\"ボタンを押下\n\n### :black_small_square:リアルタイムにシステムサービスの呼び出されているメソッドを調査\n\n1. ADT Plugin for Eclipse又はDDMSの\"Devices\"ビューで\"system_process\"プロセスを選択(デバッガ接続用の8700ポートをオープン)\n2. ShowCalledMethodsOfSystemServicesクラスを実行\n\n## [AOSP](http://source.android.com/source/requirements.html)をビルドした後、AOSP Research Tookitのツールを用いて、Eclipseプロジェクトを生成して利用\n\nTBD\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhisano%2Faosp-research-toolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhisano%2Faosp-research-toolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhisano%2Faosp-research-toolkit/lists"}