|
カテゴリ:SC03E
ma34sさんがビルドしたcm-13.0を使っていたんだけど、L01Eのlineageos-14.1がかなり安定しているので、同じROMソースからSC03E用を作成してみた。
1) カーネル lineageosからi9305用のカーネルにKBC-developersのcm-13.0、SC03E用を加えてandroid7.1用を作成 2) vendor KBC-developersのcm-13.0をベースに一部修正(センサー周りはma34sさんのビルドしたファイルから) 3) device lineageos,kbc-developersの両方を参照しながら修正 動作するもの LTE, WIFI, SDカード, カメラ,bluetooth, GPS, compass, sensor, など日常使う分には困らない。 課題 ファイルマネジャーを使うと「MTPホストが停止しました」とエラーメッセージを吐く時がある。 これはxda(https://forum.xda-developers.com/showpost.php?p=76224958&postcount=4419)でもそういう記事が出ているので、仕方ないかも。設定ーアプリーすべてのアプリ(システム)にてMTPホストを無効にしておく。 ルート化させるためには、lineageos-14.1の場合、別途、addonsu-14.1-arm-signed.zipのファイルをxdaからダウンロードしてインストールする必要がある。 データ通信だけ使っている機種なので、使わないときは、機内モードにしている。 そうすると圧倒的に電池消費が少なくなる。カスタムROMは全般的に同じ傾向。 しかし、これだけ、なぜか機内モードにしておくと充電していないのに、バッテリの容量が増える現象が出る(バグか!?)。 lineage-14.1-20190613-UNOFFICIAL-sc03e.zip 変更点 1)power profileモジュールの導入 i9300のソースの中にCPUガバナ=pegasusq 向けのpowerソースがあったので流用 ・TARGET_POWERHAL_VARIANT に pegasusq をセット ・MODULE名は power.$(TARGET_BOOTLOADER_BOARD_NAME) device/sc03e/common.mk # Power PRODUCT_PACKAGES += \ power.smdk4x12 device/sc03e/BoardCommonConfig.mk # Power TARGET_POWERHAL_VARIANT := pegasusq ※ただしi9300のCPUクロックは、1400MHz。 このPowerモジュールのソースは、1400Mhzに設定されている。 カーネルのdefconfigで、CONFIG_CPU_FREQ_GOV_PEGASUSQ_BOOST = y にする必要がある。 (boost_lock_timeが必要になるため) CONFIG_CPU_FREQ_GOV_PEGASUSQ=y CONFIG_CPU_FREQ_GOV_PEGASUSQ_BOOST=y 詳細は、drivers/cpufreq/Kconfigを参照のこと config CPU_FREQ_GOV_PEGASUSQ tristate "'pegasusq' cpufreq policy governor" config CPU_FREQ_GOV_PEGASUSQ_BOOST bool "pegasusq - enable suport for userspace-controlled cpu boosts" depends on CPU_FREQ_GOV_PEGASUSQ default n init.target.rc に以下を追加 on init chown system system /sys/devices/system/cpu/cpufreq/pegasusq chown system system /sys/devices/system/cpu/cpufreq/pegasusq/boost_freq chown system system /sys/devices/system/cpu/cpufreq/pegasusq/boost_lock_time chown system system /sys/devices/system/cpu/cpufreq/pegasusq/boost_mincpus ・・・・ chown system system /sys/devices/system/cpu/cpufreq/pegasusq/up_threshold chown system system /sys/devices/system/cpu/cpufreq/pegasusq/min_cpu_lock chown system system /sys/devices/system/cpu/cpufreq/pegasusq/max_cpu_lock chown system system /sys/devices/system/cpu/cpufreq/pegasusq/sampling_rate 2) NFC, felica を外す 使わないからいらない。
お気に入りの記事を「いいね!」で応援しよう
[SC03E] カテゴリの最新記事
こんにちは!素晴らしいROMをありがとうございます!
もし可能でしたら、Magiskhide用にカーネルにmount namespaceパッチを当てていただけないでしょうか? https://www.didgeridoohan.com/magisk/MagiskHideBasics https://github.com/pascua28/Elite-Boeffla-Kernel/compare/08d145635e08ee47bb90b9c0686e46fc80ec97e8...e70aba81158e6d3e7eeb63888e03f9d33a0fe312 上記のリンクの https://github.com/pascua28/Elite-Boeffla-Kernel/commit/1efff64c5200dd5e9f37cd7774b78092bfd2a167 https://github.com/pascua28/Elite-Boeffla-Kernel/commit/e70aba81158e6d3e7eeb63888e03f9d33a0fe312 この2コミットの内容を反映し、 defconfig(lineageos_i9305_defconfigファイル)にCONFIG_NAMESPACES=yを足せばカーネルがビルドできると思います。 機種は違いますが、i9100用のLineageOS14.1のカーネルソースに上記パッチを当てて、mka bootimageしてboot.imgをビルドできることは確認しています。 あるいは、ソースの kernel/, vendor/, devide/ を頂ければ、i9305用のLineageOS14.1のソースディレクトリに配置して自力でパッチ当ててビルドします。 なにとぞご検討のほど、よろしくお願いいたします。 (2019年09月28日 06時33分22秒)
monolithさんへ
ソースは公開しています。 https://github.com/solarisintel/ samsungがついているものをすべてダウンロードしてください (2019年09月28日 07時50分11秒)
solarisintelさんへ
ビルドに挑戦しているのですが、checkpolicyでエラーになります。 やったこととしては、Ubuntu14 64bit上で、 $ repo init -u https://github.com/LineageOS/android.git -b cm-14.1 $ repo sync $ breakfast i9305 $ kernel/, vendor/, device/ にhttps://github.com/solarisintel/からsamsungがついているものを全部DLして適所にコピー $ add_lunch_combo full_sc03e-userdebug $ lunchしてfull_sc03e-userdebugを選ぶ $ mka bootimage エラーは以下の内容です。(長くてすみません) FAILED: /bin/bash -c "(/home/anonymous/lineage/out/host/linux-x86/bin/checkpolicy (中略) system/sepolicy/untrusted_app.te:210:ERROR 'unknown type exfat' at token ';' on line 19523: #line 210 }:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } { create unlink }; checkpolicy: error(s) encountered while parsing configuration /home/anonymous/lineage/out/host/linux-x86/bin/checkpolicy: loading policy configuration from /home/anonymous/lineage/out/target/product/sc03e/obj/ETC/sepolicy_intermediates/policy.conf ninja: build stopped: subcommand failed. make: *** [ninja_wrapper] Error 1 なお、exfatをコメントアウトしても次はsysinitでコケる感じです。 手順でおかしい点や足りない点がありましたらご教示頂けないでしょうか。 よろしくお願いいたします。 (2019年09月30日 20時33分01秒)
monolithさんへ
原因はあなたがrepoでダウンロードしたときと私がrepoしたときですでにROMのソースが変わっていることです。 selinux(sepolicy)周りは、追加したり、重複エラーが出て削除とかの作業が必要です。この場合は、unknown type exfat と出ているのでexfatを追加しなければなりません。まあexfatですからこれが記述されているselinux(sepolcy)の行をコメントしてビルド進めた方がよろしいかと。 (selinux=permissiveにしているので、コメントしても動く可能性があるので) (2019年10月01日 21時25分47秒)
solarisintelさんへ
ご連絡ありがとうございます。 試行錯誤した結果、私がrepoしたバージョンのCM14に対しては、 ・device/samsung/sc03e/selinux/file.te にexfatの追記 ・device/samsung/sc03e/selinux/sysinit.te にsysinitの追記 でコンパイルが通りました。 追記内容は vendor/cm/sepolicy の同名ファイルの該当箇所をコピペでいけました。 (2019年10月02日 07時19分24秒)
solarisintelさんへ
lineage-14.1-20190613-UNOFFICIAL-sc03e.zipのboot.imgを、上記で出来上がったboot.imgに差し替えたものを、CWMでSC-03Eに焼いてみました。 その結果、OSは起動しますが、「プロセスcom.android.phoneは停止しました」というメッセージが出続ける状態になりました。 そこで、OSを丸ごとフルビルドしてみようと思い、mka bootimageするところでbrunch full_sc03e-userdebugしてみました。 結果、CWMで焼くzipはできたのですが、焼いて再起動するとブートロゴがLineageでなく「ANDROID」というAOSPのもの(?)になってしまい、ブートロゴから先に進みません。 おそらく、ビルド手順がどこかおかしいのだろうと思うのですが、solarisintel様はどのようなコマンド順でビルドされているか、ご教示頂けないでしょうか? (2019年10月20日 09時48分23秒)
solarisintelさんへ
また、solarisintel様と同じrevisionのLineageOSを揃えたいので、可能でしたらmanifest_static.xmlを頂けないでしょうか。 LineageOSのトップディレクトリで $ repo manifest -r -o manifest_static.xml とやれば生成されるはずです。 このマニフェストには現状のリポジトリのrevision numberも記載されるので、これがあれば私の方でもsolarisintel様と同じrevisionのLineageOSを揃えられます。 何卒ご検討をお願い申し上げます。 (2019年10月20日 18時47分13秒)
solarisintelさんへ
すみません、フルビルドに関しては私のやり方が悪かっただけのようです。 一旦make cleanしてlunchの選択をクリアした後、 ・$ echo "add_lunch_combo full_sc03e-userdebug" > vendor/cm/vendorsetup.sh ・.repo/local_manifest/にsolarisintel様のリポジトリを書いたマニフェストを置く(いらないかも) ・$ brunch sc03e だけで正しく焼く用zipがビルドされました。 ただ、manifest_static.xmlはやはりできれば頂けると助かります。 (2019年10月21日 07時18分33秒)
solarisintelさんへ
何度もすみません(これで最後です) > 2) NFC, felica を外す は、具体的にはどのような処置を行ったものでしょうか(こちらではNFC有効化しようと思っています) (2019年10月21日 17時23分04秒)
monolithさんへ
がんばってらっしゃいますね。 manifest_static.xmlですが、ディスクの関係上ビルドに不要なファイル、ディレクトリは消すようにしていまして、.gitや.repoはすぐに消しちゃうんですね。なのでたぶんmanifest_static.xmlは生成できません。すみません。 NFCですが、common.mkでNFC関連はすべてコメントにしているはずです。あとカーネルのdefconfig(cyanogenmod_sc03_defconfig)でNFC関連を修正する必要があるかもしれません。 Felicaは多分カーネルのドライバは入れたままにしてたと思いますが、vendor(proprietary)も用意する必要があったと思います。これはkbc-developersさんのgithubを参考にした方がいいかも、あと5chでもFelicaが使えるようにするようにするため、いろいろ書いて人がおられたようです。 参考になるかどうかわかりませんが、がんばってください。 (2019年10月21日 23時47分33秒)
solarisintelさんへ
ご返信ありがとうございます。スマホいじり楽しいです(素のLineageを新端末に対応させるほどのスキルはありませんが…) NFCは、そもそもSC-03Eは非対応なので、ソースにコード自体ない気がします。KBCのカーネルソースでも、mkファイルにNFC系のmake変数が無いようです。 felicaは、ツイッターでもfoma様が最近まで超がんばっておられたようですね。結局Android7.1.2で動かすことはできず、7.1.1なら動くという状況のようです。私も7.1.2だと予め抜き出しておいたcmdlineが起動時/proc/cmdlineにコピーされない状況で、foma様と同じです。Cyanogenmodの方のgithubに放置されてるCM14.1が丁度7.1.1なので、そっちを持ってきてsolarisintel様のカーネルを入れてビルドするとどうなるか、試してみるつもりです。 あとMagiskhideバッチリ機能しました(setenforce はターミナルから 1 に設定する必要があるようです) (2019年10月22日 06時02分12秒)
solarisintelさんへ
CyanogenmodのGithubにあったCM14は、古すぎて修正が大変そうなので、LineageOSのGithubのCM14.1を落としてきて、各プロジェクトをAndroid7.1.1当時のcommitidにcheckoutしてビルドしてみました(これでもかなり修正が必要でしたが) で、結局、/proc/cmdlineは相変わらずうまく書き換わりませんでした。というわけで諦めます (2019年10月27日 18時49分50秒)
monolithさんへ
/proc/cmdlineはカーネルとboot.imgへの2つの組み込みがありますね。おそらくカーネルの定義が優先されるかと思います。 ちなみに今は自分がビルドしたROMを使っていなくて、rodmanさんが作った i9305のResurrection Remixをデバイスi9305のままで使っています。このROMは、Magiskが組み込んであるので結構便利で、そのため、Magiskを最新版にして、SC03用のRILも入れ直してさらにSElinuxModeChangerも入れてポケモンGoも使える普通のスマホとして使ってます。 7.1カーネルのSC03E用が作りきれるのでi9305のROMを結構転用しています。 ちなみに、i9305なら7.1.1もあったかと思います、でもまあ、そこからFelica対応はかなり面倒だろうなと思います。 (2019年10月28日 22時37分00秒)
solarisintelさんへ
Felicaたぶん動きました。 solarisintel様のカーネルだと、fs/proc/cmdline.cにcmdline_proc_writeが無かったので、KBCのソースと見比べて、それ関連を足しました。 あと、init/main.cにも違いが1か所あって、効用はよくわかりませんが反映しました。 これでも起動時に自動でcmdlineが書き換わってくれないんですが、起動後にadb shellからcatで普通に/proc/cmdlineの書き換えはできるので、控えておいたcmdlineに書き換えて、その後/system/bin/mfdp &と/system/bin/mfsc &してあげると、Felicaアプリが起動しました。 「ロックされています」とも出ていないので、多分成功でしょう。 ちなみに、Android設定からFelicaアプリのおサイフケータイ権限をオンにしないとエラーで起動しないんですね。 私がハマってた原因の半分はここでしたw あとは起動時に自動でcmdlineが書き換われば最高なんですけど…まあマストじゃないですね。再起動のたびにコンソールでcmdlineやfelicaデーモンの処理が必要でめんどくさいけどw (2019年10月28日 23時24分21秒)
monolithさんへ
init.smdk4x12.rcやinit.rcに on property:sys.boot_completed=1 で追記すればいいんじゃないでしょうか? 中国語ですけど、下記のようなサイトで実装の方法が載っています。 https://zhuanlan.zhihu.com/p/48968590 (2019年10月29日 12時34分15秒)
monolithさんへ
追記です。 私なら、"android.uid.system" の記述があるアプリ(システム権限のあるアプリ)にしてon_boot_completedの時にコマンドプロンプトを実行するアプリを作ってしまいます。/system/priv-appに放り込むアプリですね。 まあ、何かしら方法はあると思うので頑張ってください。 (2019年10月29日 12時40分30秒)
solarisintelさんへ
ありがとうございます! おかげさまで、cmdlineの起動時書き換えに成功しました。 問題のキモは、cmdline書き換えを担うfelica_init.shに対応するseilnuxルールが(デタラメでもいいから)書いてあるかどうか、だったようです。 全く書いてない場合、どうやらpermissiveにしていても実行を拒否されるようです。dmesgで気付きました。 これはAndroid7からの仕様でしょうかね?KBCのソースにはselinuxルールなんてなかった気がするので。 同様に、mfscなどにもselinuxルールが要りそうな感じです。 (2019年10月29日 22時36分42秒)
monolithさんへ
proprietaryのbinの実行ファイルは、selinuxがpermissiveでも書かないとダメだったような気がします。 selinuxはROMソースの/systemやQualcomm機の場合は、/device/qcomにあるselinux(sepolicy)も含めてマージされて作られるのでこれもまた、repoしたタイミングによって内容がちがってきます。 なので私は、ややこしくて面倒なので、ビルドするとき、もっぱらEnforcingからpermissiveへ変更して行っています。つまり私のソースのselinuxの記述は適当ということです。 とにかくFelicaの実装にまた1つ進んだようで何よりです。 (2019年10月30日 23時45分39秒)
solarisintelさんへ
なんか、7.1.2でFelicaが普通に動きましたね… 7.1.1にこだわる必要なかったようです… felica_init.sh、mfdp、mfscは、selinuxのinitドメイン所属ということにしたら、OS起動時に動きました。 具体的内容: $ cat vendor/samsung/smdk4412-felica-common/proprietary/init.carrier.rc (略) on post-fs-data # for felica # exec /sbin/felica_init.sh start felica_init (略) # for felica service felica_init /sbin/felica_init.sh seclabel u:r:init:s0 user root group system oneshot service mfsc /system/bin/mfsc seclabel u:r:init:s0 class core user root group system oneshot service mfdp /system/bin/mfdp seclabel u:r:init:s0 class core user root group system oneshot # for felica end $ cat vendor/cm/sepolicy/file_contexts (略) /sbin/felica_init.sh u:object_r:init_exec:s0 /system/bin/mfsc u:object_r:init_exec:s0 /system/bin/mfdp u:object_r:init_exec:s0 (2019年10月31日 01時18分12秒)
monolithさんへ
是非公開してみてください。 lineage-14のダウンロード数が100を超えているので、たぶんあったらいいなと思っている人がいるかと思います。 (2019年10月31日 08時58分15秒)
solarisintelさんへ
公開許可ありがとうございます! …が、公開にあたって多少まじめに動作検証してたら、felica関連プロセスのselinuxを正しく書く必要があることに気付きました。 なぜかというと、楽天EdyなどはSafetyNetも利用していて、MagiskHideをかまさないと起動しないんですが、そのためにsetenforce=1すると、今度はfelica関連プロセスが avc: denied でコケるんですな。 felica関連プロセスのselinuxをやっつけたら、ROMを5chのSC-03Eスレにでも投下しようかなと思います。 (2019年10月31日 19時40分19秒)
solarisintelさんへ
ようやくSELinuxのルールがある程度整ったのでROMを公開しました。 https://egg.5ch.net/test/read.cgi/android/1443767799/635 5chのスレはそのうち流れるかもしれないので、こちらにも公開内容を貼ります。 http://www.mediafire.com/file/igu2yqcd1tpvkhn/lineage-14.1-20191104-UNOFFICIAL-sc03e-felica-magisk.zip/file ・Felicaについて 今までのKBC版カスタムOSと同様、事前にストックROMの状態で gnt2extremetuner を使うなどして抜いた cmdline ファイルが必要です。 ユーザ側で必要な作業は今までと同じなので省略します(要は抜いた cmdline を /data/media/0/kbc/GNT2eXtremeTuner/cmdline に置けばいい) ・Magiskについて Magiskのサイトから zip を落としてきて、カスタムリカバリでインストールすれば、普通に使えます。 Magiskを正常に機能させるには、SELinux を enforced モードにする必要があります。 ターミナルでrootになってコマンド打ってもいいですが、ワンタッチでモード切替できる便利アプリがこちらにあります。 https://forum.xda-developers.com/android/apps-games/app-selinux-switch-t3656502 (2019年11月04日 13時36分00秒)
つづき
・その他変更点 * ZRAMに対応。圧縮方式はLZ4。デフォルトでは swapon しないようにしたので有効になりません。 使いたい方は、 /data/local/userinit.sh を作り、中身に下記内容を書いてください。 datasizeやswappinessは所望の値に調整してください。 なお、userinit.sh は、LineageOSが起動時に実行してくれるシェルスクリプトです。 #----------------- #!/system/bin/sh echo $((512*1024*1024)) > /sys/block/zram0/disksize echo 10 > /proc/sys/vm/swappiness mkswap /dev/block/zram0 swapon /dev/block/zram0 #----------------- ポケGOやるなら、ZRAMあった方がいいですよ。ポケGO中にfreeコマンドでメモリ残量を調べたら、残り55MBまで使い込んでたので。 * カーネルモジュールに対応。ただし、LineageOS据え付けの insmod (/system/bin/insmod)だと、Bad Addressだとか言われてロードできません。欠陥品という噂も。 Busybox由来の insmod ならロードできます。/sbin/insmod_busybox として置いときました。 /data/local/userinit.sh 内で /sbin/insmod_busybox コマンドを書けばOS起動時にロードできます。 一応vermagic書いときます: 3.0.101.lineage-g1fe408d-dirty * dmesgで目についた avc: denied を元に、SELinuxのルールを分かる範囲で緩めた。といってもまだまだ不十分だと思いますが。 これでMagiskHideしながらアプリを動かしても完動…だといいなあ ------------------------- solarisintel氏のソースとの差分も配布します(未変更ファイルも混じってるかも) 私が repo sync したLineageOSのバージョンを再現できるよう、 manifest_static.xml も同梱しています。 http://www.mediafire.com/file/ywxcwgxgskazdt6/lineage-14.1-20191104-UNOFFICIAL-sc03e-felica-magisk_diff.zip/file (2019年11月04日 13時36分32秒) |