• Tutorial: Build your first Android APK on Windows from Github WhisperIME source code

    From Marion@marion@facts.com to alt.comp.os.windows-10,comp.mobile.android,alt.comp.os.windows-11 on Sat Aug 23 09:23:09 2025
    From Newsgroup: comp.mobile.android

    Tutorial:
    Build your first Android APK on Windows from Github WhisperIME src code

    This is a first-pass, written ad hoc... as the work was being done.
    It's my first "build" of a professional APK so work with me together.
    a. Compiling (Java/Kotlin) files into .class bytecode
    b. Dexing those .class files into Dalvik Executable files for ART
    c. Resource packaging of XML layouts & images to generate R.java files
    d. Linking & packaging all the above & more into an APK Android package
    e. Signing with a debug key for testing purposes
    f. Installing/deploying the APK to the device & launch for testing

    Here's a "packaged tutorial" which incorporates "strategic decisions". Therefore, default filespecs & variables can differ than those I chose.

    1. Download (but do not RUN!) the latest Android Studio for Windows
    Save to C:\software\editor\android\studio\.
    "Android Studio Narwhal Feature Drop|2025.1.2 Patch 1"
    <https://developer.android.com/studio/install>
    <https://developer.android.com/studio>
    <https://developer.android.com/studio/releases/>
    <Save to C:\software\editor\android\studio\.>
    Name: android-studio-2025.1.2.12-windows.exe
    Size: 1494432920 bytes (1425 MiB)
    SHA256: B62977A08079D438F5FFECC8B61C0C00D8E90AF556A523794C51E17AD3E12A36

    2. One by one we're replacing Google packages on unrooted Android where
    Qihe kindly suggested the Github WhisperIME tool which replaces the
    native Google voice search & speech-to-text package.
    So download (but do not unzip!) the latest WhisperIME source code.
    <https://github.com/woheller69/whisperIMEplus>
    <https://github.com/woheller69/whisperIME/releases>
    <https://github.com/woheller69/whisperIME/archive/refs/tags/V3.4.zip>
    Save to C:\software\editor\android\project\whisperime\.
    Name: whisperIME-3.4.zip
    Size: 1087646 bytes (1062 KiB)
    SHA256: 5341E96EEBF5176BD7A58CDBB1E3408098DFA9A0888C2F7E7F0E6F73E2293D8B

    3. Download the Java which Android Studio & WhisperIME are expecting.
    <https://learn.microsoft.com/en-us/java/openjdk/download>
    <https://aka.ms/download-jdk/microsoft-jdk-21.0.8-windows-x64.zip>
    Save to C:\software\editor\android\java\.

    4. Unzip and move the contents of that unzipped folder (i.e., the dir
    containing bin\java.exe) directly into C:\app\editor\android\java
    Name: microsoft-jdk-21.0.8-windows-x64.zip
    Size: 200855809 bytes (191 MiB)
    SHA256: 6ECFA864B95A45CDE05D92351EDF06D33B778669499B485BB8414145704FAE0A
    Verify with: C:\app\editor\android\java\bin\java.exe -version
    Which reported, for me just now:
    openjdk version "21.0.8" 2025-07-15 LTS
    OpenJDK Runtime Environment Microsoft-11933218 (build 21.0.8+9-LTS)
    OpenJDK 64-Bit Server VM Microsoft-11933218 (build 21.0.8+9-LTS, mixed mode, sharing)

    5. Install Android Studio by running the downloaded installer executable.
    android-studio-2025.1.2.12-windows.exe
    Do not let the installer start up the Android Studio application!
    Do not let it install emulators (due to inherent Windows complexities).
    Tell it to install Android Studio to C:\software\editor\android\studio
    If it wants to install an SDK, use C:\app\editor\android\sdk
    Cancel/close Android Studio when the Setup Wizard offers to start it!

    6. We will maintain each GitHub repo in its own project subfolder.
    To that end, unzip & move the contents of the WhisperIME zip file to
    C:\app\editor\android\project\whisperime

    7. Determine/set/check/update the necessary variables with this script.
    It does not use any absurd Microsoft/Google garbage-bin directories!
    runstudio.cmd (appended at the end of this tutorial)

    Rest assured Android Studio is a complex assemblage of Google stuff.
    The FIRST time you run it, you will have a while to wait for stuff.

    The first time you run this, Android Studio may ask you to
    "Trust and Open Project 'whisperime'?
    [_]Trust all projects in 'project' folder
    [x]Add IDE and 'whisperime' folders to the Microsoft Defender exclusions list?
    [Trust Project][Preview in Safe Mode][Don't Open]

    Click the [Trust Project] button (if you trust the project).

    You may also get the message (due to poor WhisperIME packagin) of...
    Sync Android SDKs
    The SDK path '\home\wolfgang\Android\Sdk' does not belong to a directory.
    Android Studio will use this Android SDK instead:
    C:\app\editor\android\sdk'
    and will modify the project's local properties file.
    [OK] <== just press the button as it will fix it

    And you need to accept a UAC prompt for Android Studio's elevator.
    Do you want to allow this app to make changes to this device?
    Part of elevator/launcher UAC IntelliJ kit.
    Verified publisher Google LLC. File origin:
    C:\app\editor\android\studio\bin\elevator.exe (lots more)...

    You may see a warning due to how we set the JAVA variables...
    The use of Java options environment variables detected.
    Such variables override IDE configuration files (.vmoptions)
    and may cause performance and stability issues.
    Please consider deleting these variables:
    JAVA_TOOL_OPTIONS [Don't show again]

    I have a slow machine so mine also gives the classic warning...
    Gradle project sync in progress...
    Sync is taking a significant amount of time to download dependencies.
    Open Sync tool window for details.
    BUILD SUCCESSFUL in 9m 51s

    Then you may get the suggestions... (which I ignored)
    Project update is recommended
    Android Gradle plugin version 8.2.2 has an upgrade available
    Start the AGP...
    [Start AGP Upgrade Assistant]

    Kotlin version 2.1.10 is available.

    8. Once Android Studio has done the first-time-run housekeeping,
    From the top bar, choose "Build" & then "Assemble Project".
    It will take a while & you may get sloppy-code warnings of
    ":app:compileDebugKotlin Parameter view is never used".

    The important thing is no red ERROR lines.
    When this build finishes, you'll be able to pick up the APK
    from app/build/outputs/apk/debug and try it on your device.

    Eventually you'll get a message similar to mine of
    "Gradle build finished in 4m 2s 997ms"

    You should end up with two files in the whisperime folder:
    C:\app\editor\android\project\whisperime\
    app\build\outputs\apk\debug\app-debug.apk
    app\build\outputs\apk\debug\output-metadata.json

    9. Assuming your phone is set up for adb installations and
    assuming your phone is connected via USB to Windows,
    you may need to click an "Allow" button on your phone.
    C:\> adb install -r "C:\app\editor\android\project\whisperime\app\build\outputs\apk\debug\app-debug.apk"
    Performing Streamed Install
    Success

    10. On Android, search for the purple "Whisper" mic icon.
    At this point, the app does whatever it's designed to do.
    Click the button asking "Download Model" to download the
    huge Speech-to-text model files from Hugging Face's hub.
    <https://huggingface.co/openai/whisper-large-v3>
    When it's done downloading the 435MB STT model file,
    press the Whisper "Start" button & accept permissions
    "Allow Whisper to record audio? While using the app."
    "Allow Whisper to send you notifications? Allow."
    This should add "Whisper Voice Input" to your keyboards.

    =====================================================================
    runstudio.cmd 20250822 rev 1.4 - Launch Android Studio w/ checks =====================================================================
    @echo off
    REM runstudio.cmd 20250822 rev 1.0
    REM Purpose: Launch Android Studio with WhisperIME project
    REM Archives stay in C:\software, live project in:
    REM C:\app\editor\android\project\whisperime

    setlocal

    REM === Whisper IME Project Path ===
    set "WHISPERIME_HOME=C:\app\editor\android\project\whisperime"

    if not exist "%WHISPERIME_HOME%" (
    echo [ERROR] Project folder not found:
    echo %WHISPERIME_HOME%
    echo Unzip WhisperIME source from
    echo C:\software\editor\android\project\whisperime
    goto :EOF
    )

    REM === Android SDK and Tools ===
    set "ANDROID_SDK_ROOT=C:\app\editor\android\sdk"
    set "ANDROID_HOME=%ANDROID_SDK_ROOT%"
    set "ANDROID_SDK_HOME=C:\app\editor\android\dot_android"

    REM === Java ===
    set "JAVA_HOME=C:\app\editor\android\java"
    set "JAVA_TOOL_OPTIONS=-Duser.home=C:\app\editor\android\java_home"

    REM === Temporary PATH for this run ===
    set "PATH=%ANDROID_SDK_ROOT%\platform-tools;%JAVA_HOME%\bin;%PATH%"

    REM === Check Java existence and version banner ===
    if not exist "%JAVA_HOME%\bin\java.exe" (
    echo [ERROR] JDK 21 not found at %JAVA_HOME%
    echo Please install/unzip Microsoft JDK 21 into this path from:
    echo C:\software\editor\android\java\microsoft-jdk-21.0.8...
    goto :EOF
    ) else (
    for /f "tokens=*" %%v in ('"%JAVA_HOME%\bin\java.exe" -version 2^>^&1') do (
    if not defined _java_ver set "_java_ver=%%v"
    )
    echo [INFO] Java found: %_java_ver%
    )

    REM === Check Android SDK platform-tools (adb.exe) ===
    if not exist "%ANDROID_SDK_ROOT%\platform-tools\adb.exe" (
    echo [ERROR] Android SDK platform-tools not found at %ANDROID_SDK_ROOT%
    echo Please install/unzip SDK from C:\software into this working path.
    goto :EOF
    )

    REM === Check for Android Studio executable ===
    if not exist "C:\app\editor\android\studio\bin\studio64.exe" (
    echo [ERROR] Android Studio not found in:
    echo C:\app\editor\android\studio
    echo Install/unzip Studio from:
    echo C:\software\editor\android\studio\android-studio-2025...
    goto :EOF
    )

    REM === Launch Studio with project loaded ===
    echo.
    echo Launching Android Studio with WhisperIME project...
    start "" "C:\app\editor\android\studio\bin\studio64.exe" "%WHISPERIME_HOME%"

    endlocal



    BONUS material! Once Android Studio has done the initial setup...
    a. Downloading and syncing billions of Gradle dependencies
    b. Setting up the local environment (Java, Android SDK, build tools)
    c. Generating any first-time caches or configuration files
    You could close Android Studio entirely and still build from the
    command line using the buildwhisperime.cmd included below.

    @echo off
    REM buildwhisperime.cmd 20250822 rev 1.0
    REM Purpose: Build or open WhisperIME project in a clean, controlled env
    REM Archives remain in C:\software, unzipped project in:
    REM C:\app\editor\android\project\whisperime

    setlocal

    REM === Ensure working project folder exists ===
    if not exist "C:\app\editor\android\project\whisperime" (
    echo [ERROR] Project folder not found:
    echo C:\app\editor\android\project\whisperime
    echo Unzip WhisperIME source from C:\software\editor\android\project\whisperime into this folder first.
    goto :EOF
    )

    REM === Android SDK and Tools ===
    set "ANDROID_SDK_ROOT=C:\app\editor\android\sdk"
    set "ANDROID_HOME=%ANDROID_SDK_ROOT%"
    set "ANDROID_SDK_HOME=C:\app\editor\android\dot_android"

    REM === Gradle ===
    set "GRADLE_USER_HOME=C:\app\editor\android\gradle"

    REM === Java ===
    set "JAVA_HOME=C:\app\editor\android\java"
    set "JAVA_TOOL_OPTIONS=-Duser.home=C:\app\editor\android\java_home"

    REM === Kotlin ===
    set "KOTLIN_HOME=C:\app\editor\android\kotlin"

    REM === Whisper IME ===
    set "WHISPERIME_HOME=C:\app\editor\android\project\whisperime"

    REM === Temporary PATH injection for this session only ===
    set "PATH=%ANDROID_SDK_ROOT%\platform-tools;%JAVA_HOME%\bin;%PATH%"

    REM === Existence checks for critical tools ===
    if not exist "%JAVA_HOME%\bin\java.exe" (
    echo [ERROR] JDK 21 not found at %JAVA_HOME%
    echo Please install/unzip Microsoft JDK 21 into this path from:
    echo C:\software\editor\android\java\microsoft-jdk-21.0.8-windows-x64.zip
    goto :EOF
    ) else (
    for /f "tokens=*" %%v in ('"%JAVA_HOME%\bin\java.exe" -version 2^>^&1') do (
    if not defined _java_ver set "_java_ver=%%v"
    )
    echo [INFO] Java found: %_java_ver%
    )

    if not exist "%ANDROID_SDK_ROOT%\platform-tools\adb.exe" (
    echo [ERROR] Android SDK platform-tools not found at %ANDROID_SDK_ROOT%
    echo Please install/unzip SDK from C:\software into this working path.
    goto :EOF
    )

    REM === Choose action: BUILD or OPEN in Studio ===
    echo.
    echo ============================================================
    echo WhisperIME Build/Run Environment
    echo rev 1.2 (archives in C:\software, active work in C:\app)
    echo ============================================================
    echo 1 - Build APK via Gradle (no Studio)
    echo 2 - Open in Android Studio
    echo ============================================================
    set /p choice="Select option [1/2]: "

    if "%choice%"=="1" (
    echo.
    echo Building WhisperIME APK...
    pushd "%WHISPERIME_HOME%"
    if exist gradlew (
    call gradlew assembleDebug
    ) else (
    echo [ERROR] gradlew script not found in project root.
    )
    popd
    goto :EOF
    )

    if "%choice%"=="2" (
    if not exist "C:\app\editor\android\studio\bin\studio64.exe" (
    echo [ERROR] Android Studio not found in C:\app\editor\android\studio
    goto :EOF
    )
    echo.
    echo Launching Android Studio with WhisperIME project loaded...
    start "" "C:\app\editor\android\studio\bin\studio64.exe" "%WHISPERIME_HOME%"
    goto :EOF
    )

    echo [ERROR] Invalid selection. Please run again and choose 1 or 2.

    endlocal


    In summary, my first APK build was successful, so this "should" work
    for you too, but it is a very complex process to do the first time.

    It turns out I don't even like the Whisper product, but I didn't
    even know that until AFTER I built it as my first pro APK ever.

    Lesson learned.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Marion@marion@facts.com to alt.comp.os.windows-10,comp.mobile.android,alt.comp.os.windows-11 on Sat Aug 23 17:56:29 2025
    From Newsgroup: comp.mobile.android

    On Sat, 23 Aug 2025 12:37:11 +0200 (GMT+02:00), Qihe wrote :


    I'll add it to the list.
    <https://github.com/woheller69/whisperIMEplus>
    <https://github.com/woheller69/whisperIMEplus/releases/tag/V1.3>

    Drat! Is there only source code available?

    The package is available on f-droid. https://f-droid.org/packages/org.woheller69.whisperplus

    Aurgh. I didn't know GPLv3 Whisper+ was on F-Droid.
    So it turns out that I didn't need to build the MIT WhisperIME from src.
    Sigh. Lesson learned.

    I only figured out today that they're similar but different though.
    A. WhisperIME is the original MIT IME that runs Whisper offline.
    B. Whisper+ is a GPLv3 fork that plays much better with Android
    a. Works as both a keyboard and a standalone voice input app.
    b. Can be set as the default voice input system-wide.
    c. Is better integrated & has language translation

    Anyway, the F-Droid Whisper+ worked on my Android phone.
    At least the F-Droid version worked to type my speech into text.

    You do have to hold the mic button down though.
    Which sucks (IMHO).

    Here's what the F-Droid description says about Whisper+:
    <https://f-droid.org/packages/org.woheller69.whisperplus>
    Whisper+ is an input method editor (IME) with voice recognition.
    It can work as standalone app and also in HeliBoard.
    It needs to download the Whisper models from Hugging Face.
    Voice recognition works completely offline.
    It can translate any supported language to English.
    To get the most out of Whisper+:
    Press and hold the button while speaking
    Pause briefly before starting to speak
    Speak clearly, loudly, and at a moderate pace
    Please note that there is a limit of 30s for each recording

    Overall, the advantage I see that it has over the HeliBoard or OpenBoard
    I already use is that it can offline translate languages, which is nice.

    I installed it on my Android.
    <https://f-droid.org/repo/org.woheller69.whisperplus_13.apk>
    Name: 20250822_f-droid_org.woheller69.whisperplus_13.apk
    Size: 36437963 bytes (34 MiB)
    SHA256: 60036DFF1FD39B846FA886B00D7C5877C44284F7A674233B280971F425E731DC

    The "Download Model/Install Model" is different on the F-Droid version than
    it was on my build from the Github source code in that it needed a browser (which I have a trapdoor to catch any app which tries to call a browser).
    <https://huggingface.co/DocWolle/whisperOnnx/blob/main/whisper_small_int8.zip>
    Name: 20250822_f-droid_whisper_small_int8.zip
    Size: 242722488 bytes (231 MiB)
    SHA256: 97AC121610693E8C9ADAEF9C6DB9066EF0CBEBBA53CA6E47F6D1541068CA19E3

    Since my Android is mirrored on Windows all the time, I downloaded it on Windows, but it wasn't clear if Android Whisper wants the zip or extracted.
    a. Download Model => it downloads the zip file
    b. Install Model => it took the zip file
    c. Start => brings you to "Keyboard list and default" settings
    d. Whisper+Voice input = turn this button on

    OK. So it worked this time. It's slow as a dog though.
    Much slower than anything else I've ever used.
    And it keeps reverting back to being unset as the default STT.

    So I really do not like it at all.
    But maybe I need to get used to it.

    The fact is says it does translations might be useful to some people.

    But as for me, I think I'll test it for a few days only as I already have perfectly good offline speech-to-text keyboard mics on my Android phone.


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Marion@marion@facts.com to alt.comp.os.windows-10,comp.mobile.android,alt.comp.os.windows-11 on Tue Aug 26 03:54:03 2025
    From Newsgroup: comp.mobile.android

    On Sat, 23 Aug 2025 09:23:09 -0000 (UTC), Marion wrote :


    Tutorial:
    Build your first Android APK on Windows from Github WhisperIME src code

    Yikes!
    *Google will block sideloading of unverified Android apps*
    *starting next year*

    <https://arstechnica.com/gadgets/2025/08/google-will-block-sideloading-of-unverified-android-apps-starting-next-year/>
    "Google says it's no different than checking IDs at the airport."

    Apparently Google will require that all APKs installed on certified
    Android devices (whether from the Play Store or sideloaded)
    be signed by a verified developer identity.

    This means APKs signed with a debug key (as in the process
    described in this thread) may be blocked from installing or running.

    Even if we build the APK ourselves from trusted source code,
    Android will likely check whether the signing key is linked
    to a verified developer.

    What changes in my tutorial?

    Step 8: Build APK with debug key will likely be blocked!
    Debug keys are not linked to verified identities.
    We may need to sign with a registered key.

    Step 9: Install via adb install may fail on certified devices!
    ADB install won't bypass the identity check
    unless the APK is signed by a verified developer.

    Step 10: Launch WhisperIME may not run
    Android may prevent execution of unverified apps, even if installed.

    What options do you think we'll have to build from source?
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From R.Wieser@address@is.invalid to alt.comp.os.windows-10,comp.mobile.android,alt.comp.os.windows-11 on Tue Aug 26 09:22:25 2025
    From Newsgroup: comp.mobile.android

    Arlen,

    Yikes!
    *Google will block sideloading of unverified Android apps*
    *starting next year*

    Than its good I'm not running Googles Android. :-)

    "Google says it's no different than checking IDs at the airport."

    They're missing that its *my* airport, not theirs. They are just the hired help.

    Funny though that they have no problem giving such ID's to "criminals" (malware), and allow them to hop onto your planes - allowing them to be hijacked and worse.

    What options do you think we'll have to build from source?

    Exactly what Google gives you. "We've altered the deal, pray we will not
    alter it any further". But they will.

    Regards,
    Rudy Wieser


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Arno Welzel@usenet@arnowelzel.de to alt.comp.os.windows-10,comp.mobile.android,alt.comp.os.windows-11 on Tue Aug 26 13:18:16 2025
    From Newsgroup: comp.mobile.android

    Marion, 2025-08-26 05:54:

    On Sat, 23 Aug 2025 09:23:09 -0000 (UTC), Marion wrote :


    Tutorial:
    Build your first Android APK on Windows from Github WhisperIME src code

    Yikes!
    *Google will block sideloading of unverified Android apps*
    *starting next year*

    <https://arstechnica.com/gadgets/2025/08/google-will-block-sideloading-of-unverified-android-apps-starting-next-year/>
    "Google says it's no different than checking IDs at the airport."

    Well - it's not very hard to register as developer and the one-time registration fee is just 25 USD:

    <https://support.google.com/googleplay/android-developer/answer/6112435?hl=en>

    As soon as you have a developer account you can create "verified" apps
    for your own. In the past when "feature phones" were still a thing,
    getting a certificate was *much* *more* expensive and you needed to have
    every soingle app build signed which was around 400 USD for every release.

    At the moment attackers can you just build their own malware APKs for
    Android free and and lure people into downloading them. That's one of
    the reasons why Android is often considered very insecure.

    If you don't like this - create or use your own Android-Custom-ROM which
    does not include this check.
    --
    Arno Welzel
    https://arnowelzel.de
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From R.Wieser@address@is.invalid to alt.comp.os.windows-10,comp.mobile.android,alt.comp.os.windows-11 on Tue Aug 26 14:35:42 2025
    From Newsgroup: comp.mobile.android

    Arno,

    At the moment attackers can you just build their own malware APKs for
    Android free and and lure people into downloading them. That's one of
    the reasons why Android is often considered very insecure.

    Bullshit. You can download anything you want on Windows as well as Linux,
    and neither has been called insecure for it.

    The reason Android is quite insecure is that you have no methods to check
    what a certain app is doing, meaning that if an app misbehaves you have no way to detect it. Also, the current permissions are crude, only giving all-or-nothing choices. :-(

    If you don't like this - create or use your own Android-Custom-ROM
    which does not include this check.

    Or find yourself a custom version of Android which, besides leaving it upto the user to choose where he gets his apps from, also contains better protections against mal-behaving apps in general. Like the signed apps from its app-store which, for one reason or another, still contain malware.

    The custom ROM I'm running gives me the option to disallow an apps acces to the internet, as well as restricting the apps access to storage to its own folders - and, if wanted by the user, *read-only* access to (some) others.

    Its not everything, but its much more than Googles Android offers me.

    I think that Googles Android needs to be carefull: a move like this one, forcing users to only use its ecosystem (hardware, OS, apps), might easily
    be considered an attempt to create a monopoly. And even under the current administration of the US of A that won't end well..

    Regards,
    Rudy Wieser


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Marion@marion@facts.com to alt.comp.os.windows-10,comp.mobile.android,alt.comp.os.windows-11 on Wed Aug 27 00:33:44 2025
    From Newsgroup: comp.mobile.android

    On Tue, 26 Aug 2025 14:35:42 +0200, R.Wieser wrote :


    At the moment attackers can you just build their own malware APKs for
    Android free and and lure people into downloading them. That's one of
    the reasons why Android is often considered very insecure.

    Bullshit. You can download anything you want on Windows as well as Linux, and neither has been called insecure for it.

    I will agree with anyone who makes a sensible comparison, where I have to agree that the fact you can download any app on most operating systems, doesn't inherently make them so insecure that it has to be locked up so
    that only Google or Microsoft or Canonical or RedHat can allow installs.

    Google is doing this, rather obviously, to copy the Apple model of CONTROL.
    As Rudy showed, it's a brazen lie that this is being done for "security".

    It has nothing to do with security.
    It's about control.

    The reason Android is quite insecure is that you have no methods to check what a certain app is doing, meaning that if an app misbehaves you have no way to detect it. Also, the current permissions are crude, only giving all-or-nothing choices. :-(

    We could argue Android has "more malware" than does iOS, but we already
    know iOS is vastly more exploited than Android so other metrics apply.
    <https://www.cisa.gov/known-exploited-vulnerabilities-catalog>

    We know that Apple has never tested much of their iOS code, so, again,
    other metrics apply when we look, at Apple's lies about their control.
    <https://cyberscoop.com/iphone-hack-google-project-zero/>

    The fact Apple controls iOS so rigidly doesn't gain anyone any more
    security since iOS is far less secure than Android - but it does gain Apple profits. Big profits. The biggest in the world kind of profits.

    It's about control.
    Not security.

    It's bad news that Google is following Apple's lead, as not only does it
    make it harder to compile an APK from source, but it makes Android closer
    to the locked-down iOS model which is the main reason iOS can't do half of what Android does.

    Conversely, there is only one thing iOS can do that Android can't do.

    That functionality curve crossover at exact 1 item is that lopsided simply because Apple has locked down control over iOS such that it is basically a dumb terminal that can't do anything useful w/o logging into Apple servers.

    Let's hope Google stops following Apple's control lead which causes a loss
    of functionality without even a single uptick in security as iOS is far
    more insecure than Android on almost all metrics (other than on malware).

    If you don't like this - create or use your own Android-Custom-ROM
    which does not include this check.

    Or find yourself a custom version of Android which, besides leaving it upto the user to choose where he gets his apps from, also contains better protections against mal-behaving apps in general. Like the signed apps from its app-store which, for one reason or another, still contain malware.

    The problem is that many of us have Android phones which can't be rooted.
    Up until now, we could choose where to get our apps from.

    But with this new change, we can't.

    I can already see how compiling an APK will require a Google verification.
    Does anyone have any idea what this will do to third-party repos?


    The custom ROM I'm running gives me the option to disallow an apps acces to the internet, as well as restricting the apps access to storage to its own folders - and, if wanted by the user, *read-only* access to (some) others.

    Its not everything, but its much more than Googles Android offers me.

    It's good that you have a custom ROM, and I'm envious that you do.
    Some of us have USA Samsung's whose boot loader is not known to be
    unlockable, so we're stuck on simply debloating Android as best we can.

    One option for us in the regard of what you just noted is "NetGuard",
    which, again, is functionality never found on iOS because Apple has locked
    up iOS so badly that it can't do half of what Android does as a direct
    result.

    I'm not sure why anyone buys an iPhone as it's a toy that can't do much,
    but my worry here is that Android is following Apple's lead in removing all the functionality we loved about Android (& still love in Windows & Linux).

    I think that Googles Android needs to be carefull: a move like this one, forcing users to only use its ecosystem (hardware, OS, apps), might easily be considered an attempt to create a monopoly. And even under the current administration of the US of A that won't end well..

    I agree with any sensible viewpoint, where this seems to be Google
    following Apple's model of control for the sake of control. Not for
    security.

    Note that Apple's iOS is far more insecure than Android is, but the reasons are complex (e.g., Apple hasn't tested much of its own code for one!), so
    the fact both Google & Apple "say" it's for security, is a brazen lie.
    <https://googleprojectzero.blogspot.com/2019/08/a-very-deep-dive-into-ios-exploit.html>

    It's not about security.
    It's about control.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Arno Welzel@usenet@arnowelzel.de to alt.comp.os.windows-10,comp.mobile.android,alt.comp.os.windows-11 on Fri Aug 29 18:55:49 2025
    From Newsgroup: comp.mobile.android

    R.Wieser, 2025-08-26 14:35:

    Arno,

    At the moment attackers can you just build their own malware APKs for
    Android free and and lure people into downloading them. That's one of
    the reasons why Android is often considered very insecure.

    Bullshit. You can download anything you want on Windows as well as Linux, and neither has been called insecure for it.

    It is. Windows is considered less secure - because of that!

    And even you *can* download any kind of software for Linux, most Linux
    newbies only use the repositories provided by the distributor. And the
    more experienced Linux users won't just download software from some
    unknown source and run it.

    The reason Android is quite insecure is that you have no methods to check what a certain app is doing, meaning that if an app misbehaves you have no way to detect it. Also, the current permissions are crude, only giving all-or-nothing choices. :-(

    Every single API call which reads user data or sends data of the network
    *must* be authorized. Also many API calls which interact with other applications. However many users just allow everything when asked, not
    thinking one second if the requested permission is OK for the specific
    use case or not.
    --
    Arno Welzel
    https://arnowelzel.de
    --- Synchronet 3.21a-Linux NewsLink 1.2