isai VL LGV31 / isai FL LGL24 向け ROM のビルド方法
isai VL LGV31 / isai FL LGL24 向けの Android 7.1 Nougat ROM を公開しましたのエントリで公開した ROM のビルド方法についてのメモです。(まだ作成中)
基本的には、こちらのブログで公開されている記事「ResurrectionRemix-M のビルド方法」に従えばビルドできます。
私は Ubuntu Linux 15.04 を VirtualBOX 上で使っています。
まずは公式サポートされているデバイス向けにビルドを試してみて、うまくいったのを確認してから isai ROMのビルドをすると良いでしょう。
前述の紹介記事の「3-1-b. 非公式なデバイスツリーなら存在する場合」に相当する手順です。
ResurrectionRemixをチェックアウトするディレクトリの.repo/local_manifests/以下に次のような内容のファイルを用意します。
基本的には、こちらのブログで公開されている記事「ResurrectionRemix-M のビルド方法」に従えばビルドできます。
私は Ubuntu Linux 15.04 を VirtualBOX 上で使っています。
まずは公式サポートされているデバイス向けにビルドを試してみて、うまくいったのを確認してから isai ROMのビルドをすると良いでしょう。
isai 向けに必要な設定
まずメインツリーとは別にデバイスツリーやカーネルソースコードをチェックアウトする必要がありますので、そのためのmanifest設定を行います。前述の紹介記事の「3-1-b. 非公式なデバイスツリーなら存在する場合」に相当する手順です。
ResurrectionRemixをチェックアウトするディレクトリの.repo/local_manifests/以下に次のような内容のファイルを用意します。
<? version="1.0" encoding="UTF-8"?>
<manifest>
<project name="LineageOS/android_kernel_lge_g3" path="kernel/lge/g3" remote="github" />
<project name="LineageOS/android_device_qcom_common" path="device/qcom/common" remote="github" />
<project name="bb-qq/android_kernel_lge_g3-kddi" path="kernel/lge/g3-kddi" remote="github" />
<project name="bb-qq/proprietary_vendor_lge" path="vendor/lge" remote="github" />
<project name="bb-qq/android_device_lge_g3-common" path="device/lge/g3-common" remote="github" />
<project name="bb-qq/android_device_lge_g3-kddi-common" path="device/lge/g3-kddi-common" remote="github" />
<project name="bb-qq/android_device_lge_v31" path="device/lge/v31" remote="github" />
<project name="LineageOS/android_packages_apps_FlipFlap" path="packages/apps/FlipFlap" remote="github" />
<project name="LineageOS/android_packages_resources_devicesettings" path="packages/resources/devicesettings" remote="github" />
</manifest>
ビルド
特別なことは特にいりません。
source build/envsetup.sh
brunch v31
お疲れさまです。
返信削除どこをどやったのかわかりませんが、
brunch vs985
は通るようになりました!ありがとうございます。
だけど
brunch l24
が通りません、
https://github.com/bb-qq/android_device_lge_l24
ここと、
https://github.com/LineageOS/android_device_lge_vs985
ここの中身に違いがあるのが原因なのでしょうか?
l24のときにはこんなエラーが出ます
ninja: error: '/home/t/rr/out/target/product/l24/obj/SHARED_LIBRARIES/libmdmdetect_intermediates/export_includes', needed by '/home/t/rr/out/target/product/l24/obj/SHARED_LIBRARIES/gps.msm8974_intermediates/import_includes', missing and no known rule to make it
すみません、LGL24 向けの変更の一部をコミットし忘れていました。下記の変更でうまくいくと思いますので、試してみて貰えますでしょうか。
削除https://github.com/bb-qq/proprietary_vendor_lge/commit/4d2d10f97ea4c429a328ad54bc74eab70f3b98b5
すごい!おかげさまで7%まで進むことが出来ました。
削除そのあと、こんなエラーがでて止まりましたが、これはどういう事でしょうか?
Makefile:130: ターゲット 'sub-make' のレシピで失敗しました
make: *** [sub-make] エラー 2
make: ディレクトリ '/home/t/rr/kernel/lge/g3-kddi' から出ます
[ 7% 2615/34112] host C++: llvm-tblgen <= external/llvm/utils/TableGen/CodeGenRegisters.cpp
[ 7% 2615/34112] target Java: telephony-common (/home/t/rr/out/target/common/obj/JAVA_LIBRARIES/telephony-common_intermediates/classes)
注意:一部の入力ファイルは非推奨のAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
注意:入力ファイルの操作のうち、未チェックまたは安全ではないものがあります。
注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
[ 7% 2615/34112] target Java: icu4j (/home/t/rr/out/target/common/obj/JAVA_LIBRARIES/icu4j_intermediates/classes)
注意:一部の入力ファイルは非推奨のAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
注意:external/icu/icu4j/main/classes/core/src/com/ibm/icu/impl/Relation.javaの操作は、未チェックまたは安全ではありません。
注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
ninja: build stopped: subcommand failed.
build/core/ninja.mk:151: ターゲット 'ninja_wrapper' のレシピで失敗しました
make: *** [ninja_wrapper] エラー 1
make: ディレクトリ '/home/t/rr' から出ます
CC arch/arm/kernel/hw_breakpoint.o
削除CC arch/arm/mach-msm/perf_event_msm_krait_l2.o
TIMEC kernel/timeconst.h
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at /home/t/rr/kernel/lge/g3-kddi/kernel/timeconst.pl line 373.
/home/t/rr/kernel/lge/g3-kddi/kernel/Makefile:129: ターゲット 'kernel/timeconst.h' のレシピで失敗しました
make[2]: *** [kernel/timeconst.h] エラー 255
/home/t/rr/kernel/lge/g3-kddi/Makefile:950: ターゲット 'kernel' のレシピで失敗しました
make[1]: *** [kernel] エラー 2
make[1]: *** 未完了のジョブを待っています....
CC arch/arm/mach-msm/krait-scm.o
CC arch/arm/mach-msm/perf_debug.o
検索してみたところ、Ubuntu 16.04のPerlにソースが対応できてないようですね。(Ubuntu 15では問題ない模様)
削除https://lkml.org/lkml/2012/11/18/159
こちらの変更をcherry-pickしてpushしてみました。
https://github.com/LineageOS/android_kernel_lge_g3/commit/526a26556b9069238ea7eecb9095cc672daef0e5#diff-cd1948aaf5421243c5e86456a9fd540c
一つ上のエラーはよく分からなかったです。Javaのバージョンが新しすぎるとかかもしれません。
ありがとうございます。そこを直すと一気に69%まで進みました!
削除このようなエラーでとまりましたが、なんと言ってるのでしょうか?
FAILED: /bin/bash -c "(/home/t/rr/out/host/linux-x86/bin/mkbootimg --kernel /home/t/rr/out/target/product/l24/kernel --ramdisk /home/t/rr/out/target/product/l24/ramdisk-recovery.img --cmdline \"console=none androidboot.hardware=g3 user_debug=31 msm_rtb.filter=0x0 buildvariant=userdebug\" --base 0x00000000 --pagesize 2048 --dt /home/t/rr/out/target/product/l24/dt.img --os_version 7.1.2 --os_patch_level 2017-08-05 --kernel_offset 0x0008000 --ramdisk_offset 0x2000000 --output /home/t/rr/out/target/product/l24/recovery.img --id > /home/t/rr/out/target/product/l24/recovery.id ) && (size=\$(for i in /home/t/rr/out/target/product/l24/recovery.img; do stat --format \"%s\" \"\$i\" | tr -d '\\n'; echo +; done; echo 0); total=\$(( \$( echo \"\$size\" ) )); printname=\$(echo -n \" /home/t/rr/out/target/product/l24/recovery.img\" | tr \" \" +); img_blocksize=135168; twoblocks=\$((img_blocksize * 2)); onepct=\$(((((17301504 / 100) - 1) / img_blocksize + 1) * img_blocksize)); reserve=\$((twoblocks > onepct ? twoblocks : onepct)); maxsize=\$((17301504 - reserve)); echo \"\$printname maxsize=\$maxsize blocksize=\$img_blocksize total=\$total reserve=\$reserve\"; if [ \"\$total\" -gt \"\$maxsize\" ]; then echo \"error: \$printname too large (\$total > [17301504 - \$reserve])\"; false; elif [ \"\$total\" -gt \$((maxsize - 32768)) ]; then echo \"WARNING: \$printname approaching size limit (\$total now; limit \$maxsize)\"; fi ) && (/home/t/rr/out/host/linux-x86/bin/mkbootimg --kernel /home/t/rr/out/target/product/l24/kernel --ramdisk /home/t/rr/out/target/product/l24/ramdisk-recovery.img --cmdline \"console=none androidboot.hardware=g3 user_debug=31 msm_rtb.filter=0x0 buildvariant=userdebug\" --base 0x00000000 --pagesize 2048 --dt /home/t/rr/out/target/product/l24/dt.img --kernel_offset 0x0008000 --ramdisk_offset 0x2000000 --dt /home/t/rr/out/target/product/l24/dt.img --output /home/t/rr/out/target/product/l24/recovery.img ) && (device/lge/g3-common/bump/bump.py /home/t/rr/out/target/product/l24/recovery.img /home/t/rr/out/target/product/l24/recovery.img ) && (echo -e \"Made recovery image: /home/t/rr/out/target/product/l24/recovery.img\" )"
+/home/t/rr/out/target/product/l24/recovery.img maxsize=17031168 blocksize=135168 total=18944000 reserve=270336
error: +/home/t/rr/out/target/product/l24/recovery.img too large (18944000 > [17301504 - 270336])
[ 69% 21962/31562] Install: /home/t/rr/out/target/product/l24/system/etc/init/dumpstate.rc
[ 69% 21962/31562] Install: /home/t/rr/out/target/product/l24/system/etc/init/drmserver.rc
[ 69% 21962/31562] Install: /home/t/rr/out/target/product/l24/system/etc/init/init-debug.rc
ninja: build stopped: subcommand failed.
build/core/ninja.mk:151: ターゲット 'ninja_wrapper' のレシピで失敗しました
make: *** [ninja_wrapper] エラー 1
make: ディレクトリ '/home/t/rr' から出ます
#### make failed to build some targets (02:18:14 (hh:mm:ss)) ####
そういえばリカバリイメージはサイズがオーバーしてしまうので手元のビルドではスキップさせているのでした。。。
削除手っ取り早く対処するには下記のリカバリイメージのサイズ指定を適当に増やしてみて下さい。(不正なイメージができてしまうので、コミットはしないつもりです。)
https://github.com/bb-qq/android_device_lge_g3-kddi-common/blob/286a1df3c717a8e7ef04e90bb81a12bf17b46e79/BoardConfigCommon.mk#L42
ビルド手順の公開ありがとうございます。ubuntu16.04ですが、プロプラバイナリまでメンテいただけているおかげもあり、ビルドはすんなり通りました(リカバリはサイズ増でごまかしました)。
削除文鎮化すると復旧が面倒そうな気がしたので、まだ焼いてませんが。電源オフから直接リカバリモード起動させたりできると気楽でいいのですけどね。
あ、ビルドしたのは24じゃなくて31です。
削除ビルド報告ありがとうございます。
削除せっかくなので、リカバリ領域の直接起動方法をダウンロード&インストール解説のページに追記しておきました。
で、でっ、出来ましたっ!!なんとかビルドが通りました。
削除ほんとうに、この嬉しさをなんと伝えて良いのか。
おかげさまです!
どうして良いのか検索しても全くわからず途方に暮れていたところでしたが、助けてくださったおかげでここまで辿りつけました。ありがとうございます!自分には意味が分からない文字の羅列でしたが、僕のパソコンを見ているわけじゃないのにまるで天の神様のような的確なbb_qq様の指示に従って出来たおかげです、さぞかし面倒くさい事だっただろうと思います。
なんだか変な文章になりましたが、すこしでも嬉しさと感謝の気持を伝えることができたら嬉しいです。
早速焼いてみました。が、あれ?失敗したのかな。
削除白い画面でISAIのロゴが出た後すぐに黒い画面になって
[720]fastboot mode started
[810]--reset--
[810]--portcharge--
[920]fastboot:processing comands
となって固まってしまいました。。
ベースバンドも匿名さん達がやってるようにlgl24用のを入れたかったのですがやり方わからなくて。lgv31用のをいれてromを焼いた後、twrpでバックアップしてたmodemをrestoreしたのがいけなかったのか、もういちどチャレンジしてみます。
同じ手順でbb_qq様のromを焼いてみると起動しましたので、自分のビルドしたromがなにか、どこかおかしいようです。。うーん
削除リカバリ直接起動の方法のご教授ありがとうございます。factory resetはそれこそbrickしそうな雰囲気だったのでやってなかったのですが、まさかそこから起動できたとは。。
削除その流れでビルドしたROMを焼いてみましたが、無事に起動しました。
以下、気になった点を挙げておきます。
・ROM焼き進行中に"E:unknown command [log]"と2回出力されます。twrpでSDに吐いたログの該当箇所では"E:Cannot load volume /misc!"と出ていました。updater-scriptを少し覗いたけど何が起こっているのかよくわかりませんでした。公開されたROMでも同様の現象が発生します。他の方の環境でも発生しているでしょうか?
・isaiロゴ画面が1分近く続きヒヤヒヤしました(笑)
・(コミットしていないだけかもしれませんが)ビルドしたROMでは輝度調整できませんでした。
うごいた!動きました!ついに自分でビルドしたものが動作いたしました。ありがとうございます。
削除つぎはソースのどこを変更すればどこがカスタマイズ出来るのか?というところを探ってみようと思っています。どこか参考に出来るものが有ると良いんですが。
coosee>
ぼくも同じようにunknown command と出ましたよ。
あとは、少し前からmagiskが動作がおかしくなっています。スーパーユーザーという項目を選択すると、magisk managerが繰り返し停止しています。バージョンはv13.3です。みなさんもそうでしょうか?
みつけた!
削除https://github.com/ResurrectionRemix/android_packages_services_Telephony/commit/bd8866c7700b61b74d77db25a8a0de98600c35f7
むかしのはなしですが、このときの変更で、lteの飛んでいない場所でのcdmaへの切り替えが上手く行っていたのでした。どういう意味なのかは僕には分かりませんが・・。。
あれ?これカメラが反転表示されるなぁ。cooseeさんもそうですか?
削除unknown commandは確かに出てますね・・・ 実害はなさそうなので時間のあるときにでも調べてみますが、直し方分かったら教えて下さい。
削除magiskはもともとCTSチェックは通ったこと無いですが、それ以外は今でも手元で正常に動作しています。
輝度調整はコミット漏れですのでPushしておきました。
https://github.com/bb-qq/android_device_lge_g3-kddi-common/commit/7ada30ef7bef0b3000a943e262d70694de943d7c
カメラ反転はおそらくg3-commonがフォークしたものでは無くオリジナルの物になっていると思います。以下の変更が必要です。
https://github.com/bb-qq/android_device_lge_g3-common/commit/58af7a39b25a724d5c378e4c3f4f85b064e36f9d
CDMAの対策は、これでうまく動くようなら私のROMにも反映させておこうと思います。
遅ればせながら輝度調整できることを確認しました。コミットありがとうございます。
削除カメラは皆さんが言われているように反転していたので、CAMERA_SENSOR_ORIENTETION_REVERSEを有効にしてビルドして、/system/lib/hw/camera.msm8974.so を差し替えたら反転が直りました。
カメラの反転は、bb_qq様の教えていただいた
削除device/lge/g3-common/camera/CameraWrapper.cpp
の中身を確認してみたところ、もう既に
+ int ret = gVendorModule->get_camera_info(camera_id, info);
+#ifdef CAMERA_SENSOR_ORIENTETION_REVERSE
+ if (camera_id == CAMERA_FACING_BACK) {
+ info->orientation = 270;
+ }
+#endif
+ return ret;
このようになっておりましたので、もしかしたら反転の原因は違うところなのかなぁ、考えておりましたところ。
cooseeさんの、
> 「CAMERA_SENSOR_ORIENTETION_REVERSEを有効にしてビルドして、」
この書き込みを見て、う〜んと考え。もしかしたら!と
CameraWrapper.cppふぁいるの先頭に
#define CAMERA_SENSOR_ORIENTETION_REVERSE 0
この一文を付け加えてみたところうまく反転がなおりました!
あと、
> /system/lib/hw/camera.msm8974.so を差し替えたら反転が直りました。
このファイルは、どのファイルと差し替えたらよかったですか?
> この ROM 自体は LGL24 も VoLTE 設定でビルドされています。もし、VoLTE 非対応の回線を利用しているのであれば、SMS over IMS を無効にするために
削除persist.radio.calls.on.ims=0
persist.ims.volte=false
persist.dbg.volte_avail_ovr=0
等に書き換えてみると良いかもしれません。
volte設定じゃないやり方でビルドしてみようと思います。
これはどのファイルの中身を変更すればよいですか?
>トシローさん
削除>あと、
>> /system/lib/hw/camera.msm8974.so を差し替えたら反転が直りました。
>
>このファイルは、どのファイルと差し替えたらよかったですか
out/target/product/v31/system/lib/hw/camera.msm8974.so ですよ。
ただ、ROMを焼き直すのが面倒だったから差し替えたので、
丸ごと焼き直したのなら、特にやる必要はありません。
>トシローさん
削除volteの話の方は、たぶんbuild.propじゃないでしょうか。
カメラの件もこちら側の問題でしたね・・・ 失礼しました。下記コミットで修正したつもりです。(ひとまずビルドが通ることだけ確認しました)
削除https://github.com/bb-qq/android_device_lge_g3-kddi-common/commit/24525021117511b625ebdb39989035586639c854
VoLTEの件はbuild.propであってますが、効果があるかは大分怪しいです。
cooseeさま素早い返信ありがとうございます。
削除カメラの件じっくり考えてようやくわかりました!
ソースを変更してビルドをかけて、パソコン上に出来上がったcamera.msm8974.so
をandroid端末のrootフォルダにある同名ファイルと差し替えるのですね。
しかしこのファイルを差し替えるのだと、よくみつけたものですねぇ!すごい。
そして、僕は
#define CAMERA_SENSOR_ORIENTETION_REVERSE 0
だなんてへんてこなことをしていたのですね。
よくわかりませんが、
BoardConfigCommon.mk
ファイルの中の
BOARD_GLOBAL_CFLAGS += -DCAMERA_SENSOR_ORIENTETION_REVERSE
という記述が同じような意味なのでしょうか。
bb_qqさま
カメラの件そのようにandroid_device_lge_g3-kddi-common
にあるファイルを変更してビルドしますと、カメラの反転がなおっていました!自分の#define CAMERA_SENSOR_ORIENTETION_REVERSE 0
というのは削除しておきました。
そして、build.propというのをいくら探してもoutフォルダにしか見つかりませんでしたが、このoutフォルダというのは、ソースをビルド後にできるものなので、いまから非volte設定(又はvolte設定)でビルドかけよう!と思った時にいじるソース部分ではないのでしょうか?
そしてそして、出来上がってたbuild.propなんですけども。
ぼくのbuild.propには
こういった項目
persist.radio.calls.on.ims=0
persist.ims.volte=false
persist.dbg.volte_avail_ovr=0
がなかったのですが、
僕は、またチンプンカンプンなことをやってしまってるのでしょうか?
あれ?あれ?
削除8月29日に自分でビルドしたROM(カメラの反転を#defineで直してみたver.)ではデータ通信におかしいところはなかったのに、
9月2日に自分でビルドしたROM(カメラの反転をbb_qqさまの通りにBoardConfigCommon.mk で直してみたver.)を焼いてみると。今日、自宅のWi-Fiから離れてみて、気がついたのですけどLTEとか3Gとかのデータ通信が出来なくなっていました!通話はできてます。
ビルドする前にsyncをしたからかなぁ?本家のソースになにか変更があったのかな。
みなさんのところのROMもおかしい動作をしていたりしますか?
ファイルの差し替え等はおこなっておりません。29日と2日のビルドしたromの差は、”いちどsyncし直して#defineの修正”を行ったのみです。
いちおう僕がデータ通信出来なかったromをアップしておきます。
削除https://mega.nz/#!tDIgHQAY!IApwV5JlqeGdVeTgLHX9fTYpcG1USMym6aMCm1-0Vno
もしよかったら、bb_qqさまに9月からの最新romをビルドしてみてもらえませんか?僕の端末に焼いてデータ通信ができるかやってみたいとおもいます。
先ほどrepo syncし直してビルドした ROM を公開しました。特にデータ通信等に異常は無かったです。一度 out ディレクトリを削除してみてはどうでしょうか。
削除さすがです!bb_qq様のROMではなんの問題もなくデータ通信が出来ました。ありがとうございます!
削除いつもはoutフォルダをきれいにするために、make cleanしてからビルドしているので大丈夫だと思ったのですが、念の為今回もう一度cacheも削除してビルドしてみました。
次のような手順です。
make clean
prebuilts/sdk/tools/jack-admin kill-server
ccache -cCz
repo sync -j8 -f --force-sync --no-clone-bundle
. build/envsetup.sh
brunch l24 2>&1 | tee rr_$(date '+%Y%m%d_%H-%M-%S').log
これで出来上がったROMは、やはりデータ通信ができませんでした(T_T)
僕のパソコンのソースは、repo sync -force-sync してもbb_qq様のソースとは同じにならないのでしょうか??
manifestはこの記事の上にあるように設定してあります。
Stainless Steel Blade with Polished Titanium Bmx Frame
返信削除Stainless steel Blade with Polished Titanium Bmx Frame - Steel-Blade Frame Our stainless steel blade-plated steel iron titanium token razor gives head titanium tennis racket the titanium bolts knurled edge an 바카라 even $9.99 · In titanium straightener stock
j451q3oyioh135 male sex doll,women sex toys,anal toys,wholesale sex toys,sex chair,dildos,wholesale sex toys,Bullets And Eggs,dog dildo e676u9jered391
返信削除