dhcpcd(android default dhcp program) を実行するコマンドを送信するために、android プログラム mydhcp を作成します。
dhcpcd eth0
そして、BOOT_COMPLETED アクションを受け取る apk を作成します。BOOT_COMPLETED を受信すると、共有ライブラリ (JNI) libmydhcp.so を呼び出して mydhcp を制御します。すべてのプロセスは正常に実行されますが、dhcpcd の開始は失敗します。
私のapkの AndroidManifest.xml では、システムuidと同じuidがすでに設定されています:
android:sharedUserId="android.uid.system"
その他の使用許可:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
クラッシュ ポイントは main() にあり、external/dhcpcd/dhcpcd.c にあります。
pidfd = open(pidfile, O_WRONLY | O_CREAT | O_NONBLOCK, 0664);
この問題を解決するためにどのように変更できますか? それとも無理ですか?