{"id":1475,"date":"2022-03-05T16:38:53","date_gmt":"2022-03-05T07:38:53","guid":{"rendered":"http:\/\/43.203.250.216\/?p=1475"},"modified":"2022-03-05T16:38:53","modified_gmt":"2022-03-05T07:38:53","slug":"android-recovery-image-%eb%b9%8c%eb%93%9c-%ec%84%a4%ec%a0%95","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=1475","title":{"rendered":"Android recovery image \ube4c\ub4dc \uc124\uc815"},"content":{"rendered":"<p>1. BoardConfig.mk \uc218\uc815<br \/>\nTARGET_NO_KERNEL\uacfc TARGET_NO_RECOVERY\uac00 true\ub85c \uc124\uc815\ub418\uc5b4 \uc788\ub2e4\uba74 \uc124\uc815\ud55c\ub2e4.<\/p>\n<p>2. device.mk \uc218\uc815<br \/>\nTARGET_PREBUILT_KERNEL\uad00\ub828 \uc124\uc815\uc744 \uc0ad\uc81c\ud55c\ub2e4.<\/p>\n<p>3. AndroidBoard.mk \ucd94\uac00<br \/>\nKernel build \ub420 \ub54c \ucc38\uace0\ub418\ub294 \ud30c\uc77c\uc774\ubbc0\ub85c \ucd94\uac00\ud574 \uc8fc\uace0 KERNEL_DEFCONFIG\ub4f1\uc758 \uc124\uc815\uc744 \uc790\uc2e0\uc5d0 \ub9de\uac8c \ubcc0\uacbd\ud574 \uc900\ub2e4.<\/p>\n<p>4. AndroidKernel.mk \ucd94\uac00<br \/>\nAndroidKernel.mk\ub294 kernel build\ub97c \uc704\ud55c makefile script\uc774\ub2e4.<\/p>\n<p>5. defconfig file \uacbd\ub85c\ubcc0\uacbd<br \/>\ndefconfig file\uc774 \ucc38\uc870\ub420 \uc218 \uc788\ub3c4\ub85d kernel\/$(ARCH)\/configs \uc544\ub798\uc5d0 \uc62e\uaca8\uc900\ub2e4.<\/p>\n<p>6. \uc0c1\ub300\uacbd\ub85c \ucc38\uc870\ub85c \uc778\ud55c compile error \uc218\uc815<br \/>\nAndroid build\uc5d0 \ud3ec\ud568\ub41c kernel build\ub294 \uc0c1\ub300 \uacbd\ub85c\ub97c \ucc38\uc870\ud558\ub294 \uacbd\uc6b0 build error\ub97c \ubc1c\uc0dd\ud560 \uc218 \uc788\ub2e4. \uc808\ub300 \uacbd\ub85c path\ub97c \uc8fc\uae30 \uc704\ud574 \uc808\ub300 \uacbd\ub85c\ub97c \uc5bb\uace0 make command line\uc5d0 \uc774\ub97c \ub118\uaca8\uc8fc\ub294 \ubd80\ubd84\uc744 \ucd94\uac00\ud574 \uc900\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. BoardConfig.mk \uc218\uc815 TARGET_NO_KERNEL\uacfc TARGET_NO_RECOVERY\uac00 true\ub85c \uc124\uc815\ub418\uc5b4 \uc788\ub2e4\uba74 \uc124\uc815\ud55c\ub2e4. 2. device.mk \uc218\uc815 TARGET_PREBUILT_KERNEL\uad00\ub828 \uc124\uc815\uc744 \uc0ad\uc81c\ud55c\ub2e4. 3. AndroidBoard.mk \ucd94\uac00 Kernel build \ub420 \ub54c \ucc38\uace0\ub418\ub294 \ud30c\uc77c\uc774\ubbc0\ub85c \ucd94\uac00\ud574 \uc8fc\uace0 KERNEL_DEFCONFIG\ub4f1\uc758 \uc124\uc815\uc744 \uc790\uc2e0\uc5d0 \ub9de\uac8c \ubcc0\uacbd\ud574 \uc900\ub2e4. 4. AndroidKernel.mk \ucd94\uac00 AndroidKernel.mk\ub294 kernel build\ub97c \uc704\ud55c makefile script\uc774\ub2e4. 5. defconfig file \uacbd\ub85c\ubcc0\uacbd defconfig file\uc774 \ucc38\uc870\ub420 \uc218 \uc788\ub3c4\ub85d kernel\/$(ARCH)\/configs \uc544\ub798\uc5d0 \uc62e\uaca8\uc900\ub2e4. 6. \uc0c1\ub300\uacbd\ub85c [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[2,5],"tags":[11,211],"class_list":["post-1475","post","type-post","status-publish","format-standard","hentry","category-android","category-programming","tag-android","tag-recovery"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1021,"url":"https:\/\/litcoder.com\/?p=1021","url_meta":{"origin":1475,"position":0},"title":"Emacs\uc5d0\uc11c Android \uac1c\ubc1c \ud658\uacbd \uc0ac\uc6a9","author":"litcoder","date":"2014\ub144 8\uc6d4 10\uc77c","format":false,"excerpt":"AOSP\uc5d0\ub294 Emacs\uc5d0\uc11c Android \uac1c\ubc1c\ud658\uacbd\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \uba87\uba87 el file\ub4e4\uc744 \uc81c\uacf5\ud558\ub294\ub370, platform \u00a0module build\ub97c \uc8fc\ub85c \ud558\uac8c \ub418\ub294 \ub098\ub85c\uc368\ub294 \uc0ac\uc6a9\uc5d0 \ubd80\uc871\ud568\uc774 \uc5c6\ub294 \uac83 \uac19\ub2e4. Module build\uc640 \uae30\ubcf8\uc801\uc778 ADB \uc870\uc791\uc744 \uc9c0\uc6d0\ud558\ub294 \uc774 script\ub4e4\uc758 \uae30\ub2a5\uc774 \ubd80\uc871\ud558\ub2e4\uace0 \ub290\ub080\ub2e4\uba74 Android \uac1c\ubc1c\ud658\uacbd\uc744 \ubcf4\ub2e4 \uc801\uadf9\uc801\uc73c\ub85c \uc9c0\uc6d0\ud558\ub294\u00a0android-mode\uc640 \uac19\uc740 project\ub97c \uace0\ub824\ud574 \ubcf4\ub294\uac83\ub3c4 \uc88b\uc744 \uac83\uc774\ub2e4. buildspec.mk \uc124\uc815 \uc0ac\uc2e4 \uc774 \uae30\ub2a5\uc740\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1456,"url":"https:\/\/litcoder.com\/?p=1456","url_meta":{"origin":1475,"position":1},"title":"MinnowboardMAX\uc5d0 Yocto \uc62c\ub824\ubcf8 \ub0b4\uc6a9 \uc815\ub9ac","author":"litcoder","date":"2016\ub144 2\uc6d4 8\uc77c","format":false,"excerpt":"Yocto\ub294 embedded \ud658\uacbd\uc5d0 Linux\ub97c \ud3b8\ub9ac\ud558\uac8c \uc801\uc6a9\ud558\uae30\uc704\ud55c \ubaa9\uc801\uc758 \ud504\ub85c\uc81d\ud2b8\ub85c \ubcf4\ub2e4 \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 project home page\uc778 https:\/\/www.yoctoproject.org\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 Intel Baytrail\uc744 \uc0ac\uc6a9\ud558\ub294 MinnowboardMAX\uc5d0 \u00a0Yocto linux\ub97c \uc62c\ub9ac\ub294 \uacfc\uc815\uc744 \uc124\uba85\ud55c\ub2e4. \ud658\uacbd\uc124\uc815 Ubuntu 14.04 (64bit) sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm 64bit firmware\uac00\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/02\/yocto_sato_running.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/02\/yocto_sato_running.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/02\/yocto_sato_running.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/02\/yocto_sato_running.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/02\/yocto_sato_running.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/02\/yocto_sato_running.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1489,"url":"https:\/\/litcoder.com\/?p=1489","url_meta":{"origin":1475,"position":2},"title":"Android Studio\uc5d0\uc11c Googletest \uc0ac\uc6a9\uc744 \uc704\ud55c \uc124\uc815","author":"litcoder","date":"2016\ub144 7\uc6d4 1\uc77c","format":false,"excerpt":"Android Studio\ub294 \ub0b4 PC\uc5d0\uc11c \uc880 \ub290\ub9ac\uae34 \ud558\uc9c0\ub9cc, \ub2e4\ub978 IDE\ub4e4\uc5d0 \ube44\ud574\uc11c\ub294 Emacs key binding\uc774 \ube44\uad50\uc801 \uc798\ub418\uc5b4 \uc788\uc5b4\uc11c \ub9cc\uc871 \ud558\uba74\uc11c \uc870\uae08\uc529 \ubc30\uc6cc\uac00\uace0 \uc788\ub2e4. NDK\ub85c JNI\uc5d0\uc11c \ubd88\ub7ec\ub2e4 \uc4f8 native code\ub97c \uad6c\ud604\ud558\ub2e4 \ubcf4\ub2c8 Googletest\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574 \ub9e4\ubc88 device\ub85c push \ud558\uace0 \uc2e4\ud589\ud558\ub294 \uacfc\uc815\uc774 \uaf64\ub098 \ubc88\uac70\ub85c\uc640\uc11c script\ub85c \ub9cc\ub4e4\uc5b4 \ubcf4\uc558\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 Android Studio\uc5d0\uc11c Googletest\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud55c\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":466,"url":"https:\/\/litcoder.com\/?p=466","url_meta":{"origin":1475,"position":3},"title":"Android NDK build architecture \ubcc0\uacbd\ud558\uae30","author":"litcoder","date":"2013\ub144 1\uc6d4 17\uc77c","format":false,"excerpt":"\uc544\ubb34 \uc124\uc815 \uc5c6\uc774 ndk\ub97c build \ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 arm\uc6a9 library\uac00 \ub9cc\ub4e4\uc5b4\uc9c4\ub2e4. $ <NDK_PATH>\/ndk-build Gdbserver : [arm-linux-androideabi-4.6] libs\/armeabi\/gdbserver Gdbsetup : libs\/armeabi\/gdb.setup Compile thumb : hello-jni <= hello-jni.c SharedLibrary : libhello-jni.so Install : libhello-jni.so => libs\/armeabi\/libhello-jni.so $ file obj\/local\/armeabi\/libhello-jni.so obj\/local\/armeabi\/libhello-jni.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3163,"url":"https:\/\/litcoder.com\/?p=3163","url_meta":{"origin":1475,"position":4},"title":"Ubuntu 22.04 Linux kernel 6.1.1\ub85c \uc62c\ub9ac\uae30","author":"litcoder","date":"2022\ub144 12\uc6d4 29\uc77c","format":false,"excerpt":"A build commands summary for Linux 6.1.1 on Ubuntu 22.04 distro.","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1034,"url":"https:\/\/litcoder.com\/?p=1034","url_meta":{"origin":1475,"position":5},"title":"Android emacs (android-host.el) \uae30\ub2a5 \ucd94\uac00","author":"litcoder","date":"2014\ub144 8\uc6d4 27\uc77c","format":false,"excerpt":"AOSP\uc5d0\uc11c \uc81c\uacf5\ub418\ub294 Emacs\uc6a9 Andorid \uac1c\ubc1c\ud658\uacbd\uc744 \uc124\uc815\ud55c \uc774\ud6c4(\uc774 post \ucc38\uc870) \uc798 \ubaa8\ub974\ub294 LISP\uc744 \ub354\ub4ec\uc5b4 \uac00\uba70 \ucd94\uac00\ud55c \uba87 \uac00\uc9c0 \uae30\ub2a5\uc744 \uc18c\uac1c\ud569\ub2c8\ub2e4. adb reboot (M-x android-adb-reboot) Module\ub4f1\uc744 \ubcc0\uacbd\ud55c \ud6c4\uc5d0 device\ub97c reset\ud558\ub294 \uba85\ub839\uc5b4\uac00 \uc5c6\uc5b4\uc11c \ucd94\uac00\ud588\ub2e4. \uc774 \uae30\ub2a5\uc758 \uc7a5\uc810\uc744 \uad73\uc774 \uaf3d\uc790\uba74 shell\uc744 \ub530\ub85c \ub6f0\uc6b0\uc9c0 \uc54a\uace0 \ub9ac\ubd93\uc744 \ud560\uc218 \uc788\ub2e4\ub294\uac70... (defun android-adb-reboot () \"Execute 'adb reboot'.\" (interactive)\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"icon_text_file","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2014\/08\/1408382052_12.File_.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1475"}],"version-history":[{"count":6,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1475\/revisions"}],"predecessor-version":[{"id":3082,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1475\/revisions\/3082"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}