From: Soren Stoutner Date: Tue, 24 Nov 2020 08:09:35 +0000 (-0700) Subject: Fix View Source crashing on release builds. https://redmine.stoutner.com/issues/642 X-Git-Tag: v3.6.1~1 X-Git-Url: https://gitweb.stoutner.com/?a=commitdiff_plain;h=606b5659cfd41c546fcbf248dcde72fd3c60d1c3;p=PrivacyBrowserAndroid.git Fix View Source crashing on release builds. https://redmine.stoutner.com/issues/642 --- diff --git a/app/build.gradle b/app/build.gradle index 9f072455..420de252 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,7 +19,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 29 @@ -44,7 +43,7 @@ android { release { minifyEnabled true shrinkResources true - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } @@ -90,7 +89,7 @@ dependencies { implementation 'androidx.webkit:webkit:1.3.0' // Include the Kotlin standard libraries. This should be the same version number listed in project build.gradle. - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10" + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.20" // Include the Google material library. implementation 'com.google.android.material:material:1.2.1' diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 189b5801..8d071770 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -1,6 +1,23 @@ +# Copyright © 2020 Soren Stoutner . +# +# This file is part of Privacy Browser . +# +# Privacy Browser is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Privacy Browser is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Privacy Browser. If not, see . + # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified -# in /home/soren/Android/Sdk/tools/proguard/proguard-android.txt +# in ~/Android/Sdk/tools/proguard/proguard-android-optimize.txt # You can edit the include path and order by changing the proguardFiles # directive in build.gradle. # @@ -15,3 +32,6 @@ #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} + +# Make Kotlin ViewModels work correctly. +-keep class * extends androidx.lifecycle.ViewModel { *; } \ No newline at end of file diff --git a/app/src/free/assets/pt-rBR/about_permissions.html b/app/src/free/assets/pt-rBR/about_permissions.html new file mode 100644 index 00000000..f3c36391 --- /dev/null +++ b/app/src/free/assets/pt-rBR/about_permissions.html @@ -0,0 +1,72 @@ + + + + + + + + + + + + + +

Have full network access

+

android.permission.INTERNET

+

Required for the WebView to access the internet. Without this permission, Privacy Browser would be “No Browser: Protecting Your Privacy by Staying Completely Off the Internet”.

+ +

Install shortcuts

+

com.android.launcher.permission.INSTALL_SHORTCUT

+

Required to add shortcuts for websites to the launcher desktop.

+ +

Read storage

+

android.permission.READ_EXTERNAL_STORAGE

+

Required to import settings from public folders. On Android Marshmallow (API 23) and newer, if this permission is denied Privacy Browser can import settings from the app’s folders instead.

+ +

Write storage

+

android.permission.WRITE_EXTERNAL_STORAGE

+

Required to export settings and download files to the public folders. + On Android Marshmallow (API 23) and newer, if this permission is denied Privacy Browser can export settings and store downloads in the app’s folders instead.

+ +
+
+
+ +

In addition, Privacy Browser Free displays ads from Google’s AdMob network using the Firebase backend. + For the free flavor, Firebase adds the following permissions even though they are not listed in the source code + manifest file.

+ +

View network connections

+

android.permission.ACCESS_NETWORK_STATE

+

Allows the ads to tell when you are connected to the internet and when you aren’t (presumably so they don’t try to reload an ad when you are disconnected). + They can also tell if you are connected via Wi-Fi, 2G, 3G, 4G, etc.

+ +

Prevent phone from sleeping

+

android.permission.WAKE_LOCK

+

Allows the ads to keep the processor from sleeping and the screen from dimming, although in my testing I don’t think the ads actually do this.

+ +

Play Install Referrer API

+

com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE

+

Allows other apps to tell if their installation was launched from an ad in Privacy Browser Free.

+ +

Receive data from Internet

+

com.google.android.c2dm.permission.RECEIVE

+

Allows Google to send information directly to the AdView without having to receive a request first (cloud-to-device messaging).

+ + \ No newline at end of file diff --git a/app/src/free/assets/pt-rBR/about_privacy_policy.html b/app/src/free/assets/pt-rBR/about_privacy_policy.html new file mode 100644 index 00000000..0ec033a6 --- /dev/null +++ b/app/src/free/assets/pt-rBR/about_privacy_policy.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + +

Privacy Browser Free

+

Privacy Browser Free does not collect any user information.

+ + +

Google Play

+

Google Play has its own privacy policy. + Google provides anonymized summary installation information to developers, including the number of installs organized by the following categories.

+
    +
  • Android version (eg. Android 7.1)
  • +
  • Device (eg. Samsung Galaxy S6 [zeroflte])
  • +
  • Tablets (eg. Tablets 10" and above)
  • +
  • Country (eg. United States)
  • +
  • Language (eg. English [United States])
  • +
  • App version (eg. 14)
  • +
  • Carrier (eg. T-Mobile - US)
  • +
+ + +

Google Play Ratings

+

Google Play has its own privacy policy. + Google provides developers with anonymized summaries of the following information related to user ratings.

+
    +
  • Country (eg. United States)
  • +
  • Language (eg. English)
  • +
  • App version (eg. 14)
  • +
  • Android version (eg. Android 7.1)
  • +
  • Device (eg. Google Nexus 5X [bullhead])
  • +
  • Tablets (eg. Tablets 10" and above)
  • +
+ + +

Google Play Reviews

+

Google Play has its own privacy policy. + In addition to the name of the reviewer, the rating, and the text of the review (which are all available publicly), Google provides some or all of the following information to the developer.

+
    +
  • Version code (eg. 7)
  • +
  • Version name (eg. 1.6)
  • +
  • Android version (eg. Android 5.1)
  • +
  • Device (eg. Galaxy S6 Edge+ [zenlte])
  • +
  • Manufacturer (eg. Samsung)
  • +
  • Device type (eg. Phone)
  • +
  • CPU make (eg. Samsung)
  • +
  • CPU model (eg. Exynos 7420)
  • +
  • Screen density (eg. 560 dpi)
  • +
  • Screen size (eg. 2560 x 1440)
  • +
  • RAM (eg. 4096 MB)
  • +
  • Native platform (eg. armeabi-v7a,armeabi,arm64v8a)
  • +
  • OpenGL ES version (eg. 3.1)
  • +
  • Device language (eg. English)
  • +
+ + +

Advertisements

+

Privacy Browser Free displays a banner ad across the bottom of the screen using Google's AdMob network, + which has its own privacy policy. + These ads are set to be non-personalized. + AdMob reports anonymized summaries of the following information to developers.

+
    +
  • Total impressions
  • +
  • Total clicks
  • +
  • Platforms (eg. high-end mobile devices, tablets)
  • +
  • Activity by country
  • +
+ + +

Direct Communications

+

Users may choose to send direct communications to Stoutner, like email messages and comments on stoutner.com.

+ + +

Use of Information

+

Stoutner may use this information to assist in the development of Privacy Browser and communicate the status of the project to users. + Stoutner will never sell this information nor transfer it to any third party that would use it for advertising or marketing.

+ +
+

Revision 1.7, 14 May 2019

+ + \ No newline at end of file diff --git a/app/src/free/res/values-pt-rBR/strings.xml b/app/src/free/res/values-pt-rBR/strings.xml index af5696bc..63aaceb8 100644 --- a/app/src/free/res/values-pt-rBR/strings.xml +++ b/app/src/free/res/values-pt-rBR/strings.xml @@ -22,8 +22,15 @@ + Privacy Browser Gratuito + Abrir com Privacy Browser Gratuito. + Privacy Browser Gratuito exibe um anúncio de banner na parte inferior da tela. + Esses anúncios vêm do conjunto de provedores comumente usados do Google e são configurados para não serem personalizados. + \n\nA versão padrão do Privacy Browser não contém anúncios de aplicativos. + Fechar Navegador + Aceitar Anúncios \ No newline at end of file diff --git a/app/src/main/assets/de/about_changelog.html b/app/src/main/assets/de/about_changelog.html index b792598c..d085d341 100644 --- a/app/src/main/assets/de/about_changelog.html +++ b/app/src/main/assets/de/about_changelog.html @@ -33,8 +33,8 @@ -

3.6 (version code 52)

-

16. November 2020 - Mindest-API 19, Ziel-API 29

+

3.6 (version code 52)

+

16. November 2020 - Mindest-API 19, Ziel-API 29

  • Fix eines Bugs beim gepufferten Abspielen von Audio nach dem Schließen eines Tabs.
  • Möglichkeit, unter Android 7 (API 24) und neuer benutzerdfinierten Zertifikatsstellen zu vertrauen.
  • diff --git a/app/src/main/assets/en/about_changelog.html b/app/src/main/assets/en/about_changelog.html index 7698b523..04f855fb 100644 --- a/app/src/main/assets/en/about_changelog.html +++ b/app/src/main/assets/en/about_changelog.html @@ -27,8 +27,8 @@ -

    3.6 (version code 52)

    -

    16 November 2020 - minimum API 19, target API 29

    +

    3.6 (version code 52)

    +

    16 November 2020 - minimum API 19, target API 29

    • Fix buffered audio playing after a tab is closed.
    • Trust user certificate authorities on Android 7 (API 24) and newer.
    • diff --git a/app/src/main/assets/es/about_changelog.html b/app/src/main/assets/es/about_changelog.html index 83ed2431..e88428ed 100644 --- a/app/src/main/assets/es/about_changelog.html +++ b/app/src/main/assets/es/about_changelog.html @@ -29,8 +29,8 @@ -

      3.6 (código de versión 52)

      -

      16 de noviembre de 2020 - API mínimo 19, API dirigido 29

      +

      3.6 (código de versión 52)

      +

      16 de noviembre de 2020 - API mínimo 19, API dirigido 29

      • Arreglar la reproducción de audio con buffer después de cerrar una pestaña.
      • Confiar en las autoridades de certificación de usuarios de Android 7 (API 24) o más reciente.
      • diff --git a/app/src/main/assets/fr/about_changelog.html b/app/src/main/assets/fr/about_changelog.html index 69d5cef8..50809252 100644 --- a/app/src/main/assets/fr/about_changelog.html +++ b/app/src/main/assets/fr/about_changelog.html @@ -29,8 +29,8 @@ -

        3.6 (version du code 52)

        -

        16 Novembre 2020 - API minimale : 19, API optimale : 29

        +

        3.6 (version du code 52)

        +

        16 Novembre 2020 - API minimale : 19, API optimale : 29

        • Correction de la lecture audio en mémoire tampon après la fermeture d'un onglet.
        • Confiance aux autorités de certification de l'utilisateur sur Android 7 (API 24) et suivants.
        • diff --git a/app/src/main/assets/it/about_changelog.html b/app/src/main/assets/it/about_changelog.html index 51f69f83..b3dd895c 100644 --- a/app/src/main/assets/it/about_changelog.html +++ b/app/src/main/assets/it/about_changelog.html @@ -29,8 +29,8 @@ -

          3.6 (versione codice 52)

          -

          16 Novembre 2020 - minima API 19, target API 29

          +

          3.6 (versione codice 52)

          +

          16 Novembre 2020 - minima API 19, target API 29

          • Sistemazione della riproduzione audio nel buffer dopo la chiusura di una scheda.
          • Accettazione delle autorità dei certificati degli utenti su Android 7 (API 24) e successivi.
          • diff --git a/app/src/main/assets/pt-rBR/about_changelog.html b/app/src/main/assets/pt-rBR/about_changelog.html index 8576c83e..b58d513f 100644 --- a/app/src/main/assets/pt-rBR/about_changelog.html +++ b/app/src/main/assets/pt-rBR/about_changelog.html @@ -29,8 +29,8 @@ -

            3.6 (código da versão 52)

            -

            16 November 2020 - minimum API 19, target API 29

            +

            3.6 (código da versão 52)

            +

            16 November 2020 - minimum API 19, target API 29

            3.5.1 (código da versão 51)

            diff --git a/app/src/main/assets/pt-rBR/guide_domain_settings.html b/app/src/main/assets/pt-rBR/guide_domain_settings.html index 28d90e2b..be8e2b8d 100644 --- a/app/src/main/assets/pt-rBR/guide_domain_settings.html +++ b/app/src/main/assets/pt-rBR/guide_domain_settings.html @@ -1,6 +1,8 @@ allow_screenshots + do_not_track clear_logcat display_additional_app_bar_icons diff --git a/build.gradle b/build.gradle index d65b3ccb..9fb54db3 100644 --- a/build.gradle +++ b/build.gradle @@ -26,7 +26,7 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:4.1.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.20" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/fastlane/metadata/android/pt-rBR/changelogs/52.txt b/fastlane/metadata/android/pt-rBR/changelogs/52.txt index 0f9563ad..1f4ffbe2 100644 --- a/fastlane/metadata/android/pt-rBR/changelogs/52.txt +++ b/fastlane/metadata/android/pt-rBR/changelogs/52.txt @@ -16,8 +16,8 @@ • Adicione uma entrada Mastodon em Sobre > Links. • Faça vários menores melhorias to a user experiência e gráfica interface. • Tradução do português brasileiro fornecida por Thiago Nazareno Conceição Silva de Jesus. -• Updated French translation provided by Kévin LE FLOHIC. -• Updated German translation provided by Bernhard G. Keller. -• Updated Italian translation provided by Francesco Buratti. -• Updated Russian translation. -• Updated Spanish translation provided by Jose A. León. \ No newline at end of file +• Tradução francesa atualizada fornecida por Kévin LE FLOHIC. +• Tradução alemã atualizada fornecida por Bernhard G. Keller. +• Tradução italiana atualizada fornecida por Francesco Buratti. +• Tradução russa atualizada. +• Tradução em espanhol atualizada fornecida por Jose A. León. \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 0d04ee74..4d02685a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -# Copyright © 2019 Soren Stoutner . +# Copyright © 2019-2020 Soren Stoutner . # # This file is part of Privacy Browser . # @@ -15,30 +15,26 @@ # You should have received a copy of the GNU General Public License # along with Privacy Browser. If not, see . - - -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit +## For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html - +# # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -# org.gradle.jvmargs=-Xmx1536m - +# Default value: -Xmx1024m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +# # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true +# Increase the amount of memory assigned to Gradle and the Kotlin Daemon. +org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" + # AndroidX package structure to make it clearer which packages are bundled with the # Android operating system, and which are packaged with your app's APK # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX. This is necessary for Firebase Ads in the free flavor. -android.enableJetifier=true \ No newline at end of file +android.enableJetifier=true