building android sdk tools (aapt, adb, etc.) for arm/arm64












0















I am currently interested in building the Android SDK tools (aapt, adb, etc.) for the ARM-v7a and ARM64-v8a architectures so that it can be run directly on an Android device. Is this possible?



I was able to build the Android SDK tools for x86/x86_64 pretty easily following the documentation.



https://source.android.com/setup



To do this, I performed the following steps.



  mkdir ~/WORKING_DIRECTORY
cd ~/WORKING_DIRECTORY

repo init -u https://android.googlesource.com/platform/manifest -b master -g all,-notdefault,tools
repo sync

. build/envsetup.sh
lunch sdk-eng
make sdk


As mentioned above, this will build the android SDK tools for x86/x86_64. I am just not sure how I can build the tools for other architectures.



I am aware that you can specify the desired architecture to the make targets. For example, "make aosp_arm-eng" which will build the image for the arm environment. However, when I tried "make sdk_arm-eng", it told me that the target did not exist.



Any help would be greatly appreciated.



EDIT:



It looks like Debian has arm/arm64 packages for aapt and other android tools here.



https://packages.debian.org/buster/aapt



However, these will be unable to run on the actual android device it seems because of dependencies.



/android-sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-readelf -a aapt | grep Shared

Type: DYN (Shared object file)
0x0000000000000001 (NEEDED) Shared library: [libaapt.so.0]
0x0000000000000001 (NEEDED) Shared library: [libutils.so.0]
0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x0000000000000001 (NEEDED) Shared library: [ld-linux-aarch64.so.1]


As we can see below, it requires libgcc libstc++ which isn't packaged with android.










share|improve this question





























    0















    I am currently interested in building the Android SDK tools (aapt, adb, etc.) for the ARM-v7a and ARM64-v8a architectures so that it can be run directly on an Android device. Is this possible?



    I was able to build the Android SDK tools for x86/x86_64 pretty easily following the documentation.



    https://source.android.com/setup



    To do this, I performed the following steps.



      mkdir ~/WORKING_DIRECTORY
    cd ~/WORKING_DIRECTORY

    repo init -u https://android.googlesource.com/platform/manifest -b master -g all,-notdefault,tools
    repo sync

    . build/envsetup.sh
    lunch sdk-eng
    make sdk


    As mentioned above, this will build the android SDK tools for x86/x86_64. I am just not sure how I can build the tools for other architectures.



    I am aware that you can specify the desired architecture to the make targets. For example, "make aosp_arm-eng" which will build the image for the arm environment. However, when I tried "make sdk_arm-eng", it told me that the target did not exist.



    Any help would be greatly appreciated.



    EDIT:



    It looks like Debian has arm/arm64 packages for aapt and other android tools here.



    https://packages.debian.org/buster/aapt



    However, these will be unable to run on the actual android device it seems because of dependencies.



    /android-sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-readelf -a aapt | grep Shared

    Type: DYN (Shared object file)
    0x0000000000000001 (NEEDED) Shared library: [libaapt.so.0]
    0x0000000000000001 (NEEDED) Shared library: [libutils.so.0]
    0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
    0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
    0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
    0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
    0x0000000000000001 (NEEDED) Shared library: [ld-linux-aarch64.so.1]


    As we can see below, it requires libgcc libstc++ which isn't packaged with android.










    share|improve this question



























      0












      0








      0


      2






      I am currently interested in building the Android SDK tools (aapt, adb, etc.) for the ARM-v7a and ARM64-v8a architectures so that it can be run directly on an Android device. Is this possible?



      I was able to build the Android SDK tools for x86/x86_64 pretty easily following the documentation.



      https://source.android.com/setup



      To do this, I performed the following steps.



        mkdir ~/WORKING_DIRECTORY
      cd ~/WORKING_DIRECTORY

      repo init -u https://android.googlesource.com/platform/manifest -b master -g all,-notdefault,tools
      repo sync

      . build/envsetup.sh
      lunch sdk-eng
      make sdk


      As mentioned above, this will build the android SDK tools for x86/x86_64. I am just not sure how I can build the tools for other architectures.



      I am aware that you can specify the desired architecture to the make targets. For example, "make aosp_arm-eng" which will build the image for the arm environment. However, when I tried "make sdk_arm-eng", it told me that the target did not exist.



      Any help would be greatly appreciated.



      EDIT:



      It looks like Debian has arm/arm64 packages for aapt and other android tools here.



      https://packages.debian.org/buster/aapt



      However, these will be unable to run on the actual android device it seems because of dependencies.



      /android-sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-readelf -a aapt | grep Shared

      Type: DYN (Shared object file)
      0x0000000000000001 (NEEDED) Shared library: [libaapt.so.0]
      0x0000000000000001 (NEEDED) Shared library: [libutils.so.0]
      0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
      0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
      0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
      0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
      0x0000000000000001 (NEEDED) Shared library: [ld-linux-aarch64.so.1]


      As we can see below, it requires libgcc libstc++ which isn't packaged with android.










      share|improve this question
















      I am currently interested in building the Android SDK tools (aapt, adb, etc.) for the ARM-v7a and ARM64-v8a architectures so that it can be run directly on an Android device. Is this possible?



      I was able to build the Android SDK tools for x86/x86_64 pretty easily following the documentation.



      https://source.android.com/setup



      To do this, I performed the following steps.



        mkdir ~/WORKING_DIRECTORY
      cd ~/WORKING_DIRECTORY

      repo init -u https://android.googlesource.com/platform/manifest -b master -g all,-notdefault,tools
      repo sync

      . build/envsetup.sh
      lunch sdk-eng
      make sdk


      As mentioned above, this will build the android SDK tools for x86/x86_64. I am just not sure how I can build the tools for other architectures.



      I am aware that you can specify the desired architecture to the make targets. For example, "make aosp_arm-eng" which will build the image for the arm environment. However, when I tried "make sdk_arm-eng", it told me that the target did not exist.



      Any help would be greatly appreciated.



      EDIT:



      It looks like Debian has arm/arm64 packages for aapt and other android tools here.



      https://packages.debian.org/buster/aapt



      However, these will be unable to run on the actual android device it seems because of dependencies.



      /android-sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-readelf -a aapt | grep Shared

      Type: DYN (Shared object file)
      0x0000000000000001 (NEEDED) Shared library: [libaapt.so.0]
      0x0000000000000001 (NEEDED) Shared library: [libutils.so.0]
      0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
      0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
      0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
      0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
      0x0000000000000001 (NEEDED) Shared library: [ld-linux-aarch64.so.1]


      As we can see below, it requires libgcc libstc++ which isn't packaged with android.







      android android-source






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 19 at 4:04







      Jon

















      asked Jan 19 at 3:23









      JonJon

      4021617




      4021617
























          1 Answer
          1






          active

          oldest

          votes


















          0














          I ended up just building aapt myself from the AOSP source code. This was much easier than I initially thought. To do this, I modified the build script to build the binaries for the "target" architecture instead of the "host" architecture.



          https://android.googlesource.com/platform/frameworks/base/+/master-soong/tools/aapt/Android.bp



          The built binaries are here in case anyone else needs them.



          https://github.com/thejunkjon/android-aapt-lib






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54263814%2fbuilding-android-sdk-tools-aapt-adb-etc-for-arm-arm64%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            I ended up just building aapt myself from the AOSP source code. This was much easier than I initially thought. To do this, I modified the build script to build the binaries for the "target" architecture instead of the "host" architecture.



            https://android.googlesource.com/platform/frameworks/base/+/master-soong/tools/aapt/Android.bp



            The built binaries are here in case anyone else needs them.



            https://github.com/thejunkjon/android-aapt-lib






            share|improve this answer




























              0














              I ended up just building aapt myself from the AOSP source code. This was much easier than I initially thought. To do this, I modified the build script to build the binaries for the "target" architecture instead of the "host" architecture.



              https://android.googlesource.com/platform/frameworks/base/+/master-soong/tools/aapt/Android.bp



              The built binaries are here in case anyone else needs them.



              https://github.com/thejunkjon/android-aapt-lib






              share|improve this answer


























                0












                0








                0







                I ended up just building aapt myself from the AOSP source code. This was much easier than I initially thought. To do this, I modified the build script to build the binaries for the "target" architecture instead of the "host" architecture.



                https://android.googlesource.com/platform/frameworks/base/+/master-soong/tools/aapt/Android.bp



                The built binaries are here in case anyone else needs them.



                https://github.com/thejunkjon/android-aapt-lib






                share|improve this answer













                I ended up just building aapt myself from the AOSP source code. This was much easier than I initially thought. To do this, I modified the build script to build the binaries for the "target" architecture instead of the "host" architecture.



                https://android.googlesource.com/platform/frameworks/base/+/master-soong/tools/aapt/Android.bp



                The built binaries are here in case anyone else needs them.



                https://github.com/thejunkjon/android-aapt-lib







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 24 at 3:53









                JonJon

                4021617




                4021617






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54263814%2fbuilding-android-sdk-tools-aapt-adb-etc-for-arm-arm64%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Liquibase includeAll doesn't find base path

                    How to use setInterval in EJS file?

                    Petrus Granier-Deferre