開発環境-Androidはinit.rcを変更します

特殊なロジックがあるため、起動時にブートアニメーションなどのサービスを開かないようにしたいと思います。

前にブートアニメーションの置き換えについても触れましたが、「/ system / media」ディレクトリのbootanimation.zipを変更するだけです。

desc.txtやその他の構成など、より詳細なコンテンツのいくつかは、他のブログで言及されます。

Androidプロダクションブートアニメーション

 

今回の主な研究は、ブートアニメーションとブートリングトーンを完全にオフにする方法です。

 

ブートアニメーションのロジックも以前に研究されています。

システムが起動すると、Ramdiskのrcスクリプトが自動的に実行されます。その中にファイル/root/init.rcがあります。これはメインのシステムサービスjavascript:です。このスクリプトを開くと、serviceで始まる文がたくさんあることがわかります。システムサービスです。その機能は、必要なシステムサービスを開始するために起動するときに、system / binの下のバイナリファイルとshスクリプトを開始することです。スクリプトの実行後、システムサービスはスクリプトシーケンスで開始されます

システムサービスの開始後、通常、メディアサービスが最初に開始され、次に起動とシャットダウンのアニメーションとリングトーンサービスが開始されます。これは、電源オンアニメーションとリングトーンがメディアサービスに依存しているためです。ここでコードを追加および削除すると、アニメーションをオンまたはオフにできます。そして、リングトーンの目的。

現時点では、友人から再度質問が寄せられる場合がありますが、電源投入時のアニメーションと着信音をオフにして、システム/メディアから直接ファイルを削除するだけでは不十分ですか?それほど面倒である必要はありません。
次に、別の場所が関係します。アニメーションとリングトーンを直接削除する場合、システムがサービスを開始するときに、アニメーションとリングトーンファイルがシステム/メディアの下に見つからない場合、デフォルトのスイッチアニメーション、デフォルトのスイッチが読み込まれます。アニメーションはANDROIDで、system / framework / framework-res.apkにあります。フレームファイルを解凍します。assetsフォルダーの下に、Androidのデフォルトのスイッチアニメーションである画像ファイルと2つのpng画像があります。したがって、アニメーションファイルとリングトーンファイルを直接削除して、アニメーションとリングトーンを完全に閉じることはできません。システムサービスを変更することによってのみ、完全にオンとオフを切り替えることができます。

 

/root/init.rc内の次のスクリプトは、ブートアニメーションを開始するための対応するサービスです。このスクリプトが削除されている限り、ブートアニメーションをオフにすることができます。

service bootanim /system/bin/bootanimation          
    class core                                                         
    user root         
    group graphics audio
    disabled                                           
    oneshot 

init.rcはAndroidのルートディレクトリにありますが、変更することはできません。変更すると無駄になります。再起動すると復元されます、ramdisk ...

init.rcはrootfs内のファイルです。Androidはrootfs(initramfs)をlinuxカーネルイメージにリンクして、通常の起動用のboot.imgとリカバリモードのrecovery.imgを生成します
。Androidブートローダーは、再起動するたびにboot.imgを変更する必要があります。RAMにロードされ、一方の部分は、実際のLinuxカーネルイメージ(zImageの)であり、他の部分は(等、init.rc、INITを含む)のinitramfsである。
Linuxカーネルが初期化されるとき、その後、initramfsのは/にrootfsのようにマウントされます。
このよう、adbシェルまたはシリアルポートを使用して/のinit.rcを変更します。次回の再起動でリロードされるため、変更は自然に消えます。

ここで、生成されたboot.imgはkernel.imgに統合されます。
 

 

 

PS:

Androidのinit.rcファイルがパブリックディレクトリにあるため、別の小さなエピソードがあります。このファイルを変更すると、すべてのプロジェクトのinit.rcが変更される可能性があります。

したがって、device.mkファイルを変更し、次のコードを指定されたディレクトリのinit.rcファイルに置き換える必要があります。

PRODUCT_COPY_FILES += \
    device/hisilicon/bigfish/etc/init.rc:root/init.rc \

次のように変更します。

 PRODUCT_COPY_FILES += \
   device/kedacom/${TARGET_PRODUCT}/etc/init.rc:root/init.rc \

 

上記は、スタートアップサービスでbootanimationサービスをオフにする方法です。

他のサービスの開始と終了については、このセクションを参照することもできます。

 

おすすめ

転載: blog.csdn.net/Ivan804638781/article/details/100076102