現在時刻 - 2017年12月12日(火) 02:17


[SC03D]CarbonRomなどのROMビルド

カーネルやカスタムROMに関する話題・質問はこちらへ

モデレータ: Samsungモデレータ

  • 作成者
  • メッセージ
アバター

INLEAF

  • 記事: 20
  • 登録日時: 2014年3月01日(土) 13:33

[SC03D]CarbonRomなどのROMビルド

投稿記事2014年5月03日(土) 16:22

以前自分も戸惑ったことがあったので(汗)
CMと同じ方法でできない時はこの方法でできます。

ここでは環境構築はすでにできているものとして話を進めます。
まずはじめにmanifestの取得です。
Carbonなのでここを参考に。
https://github.com/CarbonDev/android
コード: 全て選択
repo init -u https://github.com/CarbonDev/android.git -b kk && repo sync -f

これで多分manifestの取得とrepo syncが行われます。
アバター

INLEAF

  • 記事: 20
  • 登録日時: 2014年3月01日(土) 13:33

Re: [SC03D]CarbonRomなどのROMビルド

投稿記事2014年5月03日(土) 16:35

次にlocal_manifestを追加してのrepo syncです。
前から思ってたんですけどしょっぱなからlocal_manifest追加してrepo syncするとビルドでコケるんですよね・・・

.repo以下にlocal_manifest.xmlを作成し以下のことを書き込む
コード: 全て選択
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-11.0" />
<project name="kbc-developers/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github" revision="cm-11.0" />
<project name="kbc-developers/android_device_samsung_celox-common" path="device/samsung/celox-common" remote="github" revision="cm-11.0" />
<project name="kbc-developers/android_device_samsung_msm8660-common" path="device/samsung/msm8660-common" remote="github" revision="cm-11.0" />
<project name="kbc-developers/android_device_samsung_celoxdcm" path="device/samsung/celoxdcm" remote="github" revision="cm-11.0" />
<project name="kbc-developers/android_kernel_samsung_msm8660" path="kernel/samsung/msm8660-dcm" remote="github" revision="cm-11.0" />
<project name="kbc-developers/sc03d_boot_ramdisk" path="kernel/samsung/sc03d_boot_ramdisk" remote="github" revision="kk-aosp" />
<project name="kbc-developers/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="cm-11.0" />
</manifest>

そしたら再びrepo sync
アバター

INLEAF

  • 記事: 20
  • 登録日時: 2014年3月01日(土) 13:33

Re: [SC03D]CarbonRomなどのROMビルド

投稿記事2014年5月03日(土) 16:43

repo syncできない場合は.repo/manifest.xmlを見ましょう。
remoteの名前がgithubではなくghとかになっている時があります。
Carbonの場合はgithubではなくghになっています。
https://github.com/CarbonDev/android/bl ... lt.xml#L19

というわけでlocal_manifestの内容をちょっといじって
コード: 全て選択
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="gh" revision="cm-11.0" />
<project name="kbc-developers/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="gh" revision="cm-11.0" />
<project name="kbc-developers/android_device_samsung_celox-common" path="device/samsung/celox-common" remote="gh" revision="cm-11.0" />
<project name="kbc-developers/android_device_samsung_msm8660-common" path="device/samsung/msm8660-common" remote="gh" revision="cm-11.0" />
<project name="kbc-developers/android_device_samsung_celoxdcm" path="device/samsung/celoxdcm" remote="gh" revision="cm-11.0" />
<project name="kbc-developers/android_kernel_samsung_msm8660" path="kernel/samsung/msm8660-dcm" remote="gh" revision="cm-11.0" />
<project name="kbc-developers/sc03d_boot_ramdisk" path="kernel/samsung/sc03d_boot_ramdisk" remote="gh" revision="kk-aosp" />
<project name="kbc-developers/proprietary_vendor_samsung" path="vendor/samsung" remote="gh" revision="cm-11.0" />
</manifest>

これでrepo syncできるはず。
アバター

INLEAF

  • 記事: 20
  • 登録日時: 2014年3月01日(土) 13:33

Re: [SC03D]CarbonRomなどのROMビルド

投稿記事2014年5月03日(土) 16:56

次はビルド・・・と行きたいところですがこのままだとコケます。
その理由はandroid_device_samsung_celoxdcmにあります。
これを見ていただきたい
https://github.com/kbc-developers/andro ... cm/network
おわかりいただけますでしょうか?
あるcommitのところからいろんな人がforkして変更を加えています。
その中にはCarbonDevさんの名前も・・・
この変更のせいでビルドできないのです。

というわけでうちのdeviceにもCarbonDevさんと同じ変更を加えましょう。
アバター

INLEAF

  • 記事: 20
  • 登録日時: 2014年3月01日(土) 13:33

Re: [SC03D]CarbonRomなどのROMビルド

投稿記事2014年5月03日(土) 17:10

自分のgithubアカウントは持っていますか?持っていたらこれからの作業はとても楽です。
持っている人はandroid_device_samsung_celoxdcmをforkします。
https://github.com/kbc-developers/andro ... g_celoxdcm
forkしたら自分のとこからgit cloneしてください。
持ってない人は下のでok
コード: 全て選択
git clone git://github.com/kbc-developers/android_device_samsung_celoxdcm.git -b cm-11.0

そしたらbranchを切り替えます。
名前はceloxdcm-carbonとでもしておきましょう
コード: 全て選択
git checkout -b celoxdcm-carbon

ここでbranchの確認。
コード: 全て選択
git branch -a

自分がceloxdcm-carbonにいることがわかります。
そしたらCarbonDevさんのところから変更を加えられたやつをfetchしてきましょう。
コード: 全て選択
git fetch git://github.com/CarbonDev/android_device_samsung_skyrocket.git kk:skyrocket-carbon

そしたらgit cherry-pickでCarbonさんのcommitをポチポチ当てていきます。
conflictが発生すると思いますがそこら辺はいい感じに解決してください。
アバター

INLEAF

  • 記事: 20
  • 登録日時: 2014年3月01日(土) 13:33

Re: [SC03D]CarbonRomなどのROMビルド

投稿記事2014年5月03日(土) 17:36

全部当てましたか?
ならばアカウントを持っている人は自分のところにpushしましょう。
コード: 全て選択
git push origin celoxdcm-carbon:carbon-kk


local_manifestにのandroid_device_samsung_celoxdcmのところをkbcから自分に変更
コード: 全て選択
変更前
<project name="kbc-developers/android_device_samsung_celoxdcm" path="device/samsung/celoxdcm" remote="gh" revision="cm-11.0" />
変更後
<project name="~~~/android_device_samsung_celoxdcm" path="device/samsung/celoxdcm" remote="gh" revision="carbon-kk" />
~~~には自分のユーザー名

変更したらrepo sync -f

要するにdevice/samsung/celoxdcm以下が変更されてればいいのでceloxdcm以下を全部消して全コピペでもいいです。
アバター

INLEAF

  • 記事: 20
  • 登録日時: 2014年3月01日(土) 13:33

Re: [SC03D]CarbonRomなどのROMビルド

投稿記事2014年5月03日(土) 17:41

ようやくビルド・・・
コード: 全て選択
. build/envsetup.sh
lunch carbon_celoxdcm-userdebug
make carbon -j#
#には任意の数

これでビルドできるはず・・・

予想以上に時間がかかってしまったorz
まあ暇だから書いたんだけど。

おしまい。。。

Return to 開発全般

cron