Перейти к содержанию
  • Регистрация
  • 0
Сергей Доктор

Проблема с манифестом

Вопрос

Всем добрый!!!!!!!!! В rad studio 10.2 было все ок. Приложение под андроид компилится и работает отлично. Запускаю этот же проект в rad studio 10.3.2 . Приложение компилится и запускается, но не получает необходимые разрешения, хотя с манифестом все отлично. Снова запускаю проект в Studio 10.2 и все разрешения получает. Как думаете в чём проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0

А где сам манифест? Какие разрешения пытаетесь получить? Версия Андроида? Дайте больше инфы, на форуме нет телепатов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

в USES Permission выставил разрешения, манифест генерируется автоматом. снёс 10.3 и поставил 10.2 все в порядке, разрешения получает при установке apk.  вот манифест, но думаю не в нём дело. ведь работает с ним нормально в версии 10.2

Спойлер

 

<?xml version="1.0" encoding="utf-8"?>
<!-- BEGIN_INCLUDE(manifest) -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.embarcadero.Google"
        android:versionCode="1"
        android:versionName="1.0.0"
        android:installLocation="internalOnly">

    <!-- This is the platform API where NativeActivity was introduced. -->
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="28" />
    <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
    <uses-permission android:name="android.permission.MICROPHONE"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_CHECKING_PROPERTIES" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCOUNT_MANAGER" />
    <uses-permission android:name="android.permission.ADD_VOICEMAIL" />
    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
    <uses-permission android:name="android.permission.BATTERY_STATS" />
    <uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />
    <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
    <uses-permission android:name="android.permission.BIND_INPUT_METHOD" />
    <uses-permission android:name="android.permission.BIND_VPN_SERVICE" />
    <uses-permission android:name="android.permission.BIND_REMOTEVIEWS" />
    <uses-permission android:name="android.permission.BIND_TEXT_SERVICE" />
    <uses-permission android:name="android.permission.BIND_WALLPAPER" />
    <uses-permission android:name="android.permission.BIND_APPWIDGET" />
    <uses-permission android:name="android.permission.BRICK" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED" />
    <uses-permission android:name="android.permission.BROADCAST_SMS" />
    <uses-permission android:name="android.permission.BROADCAST_WAP_PUSH" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
    <uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
    <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" />
    <uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
    <uses-permission android:name="android.permission.DELETE_CACHE_FILES" />
    <uses-permission android:name="android.permission.DELETE_PACKAGES" />
    <uses-permission android:name="android.permission.DEVICE_POWER" />
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <uses-permission android:name="android.permission.DIAGNOSTIC" />
    <uses-permission android:name="android.permission.DUMP" />
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
    <uses-permission android:name="android.permission.FACTORY_TEST" />
    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <uses-permission android:name="android.permission.FORCE_BACK" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.GET_PACKAGE_SIZE" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.GLOBAL_SEARCH" />
    <uses-permission android:name="android.permission.HARDWARE_TEST" />
    <uses-permission android:name="android.permission.INJECT_EVENTS" />
    <uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER" />
    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
    <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
    <uses-permission android:name="android.permission.MANAGE_APP_TOKENS" />
    <uses-permission android:name="android.permission.MASTER_CLEAR" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
    <uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    <uses-permission android:name="android.permission.READ_CALENDAR" />
    <uses-permission android:name="android.permission.READ_CALL_LOG" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
    <uses-permission android:name="android.permission.READ_HISTORY_BOOKMARKS" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_PROFILE" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.READ_SOCIAL_STREAM" />
    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
    <uses-permission android:name="android.permission.READ_SYNC_STATS" />
    <uses-permission android:name="android.permission.READ_USER_DICTIONARY" />
    <uses-permission android:name="android.permission.REBOOT" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.RECEIVE_MMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.REORDER_TASKS" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.SET_ACTIVITY_WATCHER" />
    <uses-permission android:name="android.permission.SET_ALARM" />
    <uses-permission android:name="android.permission.SET_ALWAYS_FINISH" />
    <uses-permission android:name="android.permission.SET_ANIMATION_SCALE" />
    <uses-permission android:name="android.permission.SET_DEBUG_APP" />
    <uses-permission android:name="android.permission.SET_ORIENTATION" />
    <uses-permission android:name="android.permission.SET_POINTER_SPEED" />
    <uses-permission android:name="android.permission.SET_PROCESS_LIMIT" />
    <uses-permission android:name="android.permission.SET_TIME" />
    <uses-permission android:name="android.permission.SET_TIME_ZONE" />
    <uses-permission android:name="android.permission.SET_WALLPAPER" />
    <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
    <uses-permission android:name="android.permission.SIGNAL_PERSISTENT_PROCESSES" />
    <uses-permission android:name="android.permission.STATUS_BAR" />
    <uses-permission android:name="android.permission.SUBSCRIBED_FEEDS_READ" />
    <uses-permission android:name="android.permission.SUBSCRIBED_FEEDS_WRITE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
    <uses-permission android:name="android.permission.USE_SIP" />
    <uses-permission android:name="com.android.vending.BILLING" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_CALENDAR" />
    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_GSERVICES" />
    <uses-permission android:name="android.permission.WRITE_HISTORY_BOOKMARKS" />
    <uses-permission android:name="android.permission.WRITE_PROFILE" />
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_SMS" />
    <uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM" />
    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />

    <uses-feature android:glEsVersion="0x00020000" android:required="True"/>
    <application android:persistent="False" 
        android:restoreAnyVersion="True" 
        android:label="  " 
        android:debuggable="True" 
        android:largeHeap="False"
        android:icon="@drawable/ic_launcher"
        android:theme="@style/AppTheme"
        android:hardwareAccelerated="true">


        <service android:exported="false" android:name="com.embarcadero.services.Project3" />

        <!-- Our activity is a subclass of the built-in NativeActivity framework class.
             This will take care of integrating with our NDK code. -->
        <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity"
                android:label=" "
                android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
                android:launchMode="singleTask"
                android:noHistory="true">
            <!-- Tell NativeActivity the name of our .so -->
            <meta-data android:name="android.app.lib_name"
                android:value="Project1" />
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter> 
        </activity>
        
        <receiver android:name="com.embarcadero.rtl.notifications.NotificationAlarm" />

         <receiver 
             android:name="com.embarcadero.Project1.BootReceiver"
             android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
           <intent-filter> 
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.DEFAULT" /> 
           </intent-filter> 
         </receiver> 
    </application>
</manifest>
<!-- END_INCLUDE(manifest) -->

 


 

Изменено пользователем Andrey Efimov
спрятал манифест под спойлер

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Отлично, теперь давайте по порядку.

1 час назад, Сергей Доктор сказал:

в USES Permission выставил разрешения, манифест генерируется автоматом. снёс 10.3 и поставил 10.2 все в порядке, разрешения получает при установке apk.

и

1 час назад, Сергей Доктор сказал:

версии андроида пробовал на 6   7   9   5.1.1, на реальных телефонах, не в эмуляторе.

скорее всего это не соответствует действительности.

 

Объясню почему, кратко. А подробнее можно почитать по ссылке ниже.

С Android 6 (API 23) были усилены меры безопасности. Разрешения (Uses Permissions) были поделены на две категории "Обычные" и "Опасные". Отличие заключается в том, что:

  • на версиях Андроид до 6 достаточно прописать разрешения в манифесте
  • на версиях Андроид 6 и выше, опасные разрешения необходимо прописать в манифесте и запрашивать в режиме реального времени, т.е. прямо во время выполнения приложения.

Тут важно добавить, что есть способ обойти эти меры безопасности, но не факт что он будет работать на новых версиях Андроида, поэтому озвучивать его не буду.

В вашем манифесте море опасных разрешений и соответственно они не могли быть получены через манифест на версиях Андроид >=6.

 

1 час назад, Сергей Доктор сказал:

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="28" />

Вы явно указываете, что ваше приложение поддерживает Андроид 4.0 и разрабатывалось для Андроид 9. А значит вы уже обязаны запрашивать разрешения в режиме реального времени.

Примечание. Студия 10.2.* и 10.3.* официально не поддерживают Андроид 4.0-4.4.4, но приложения запускаются. Однако при использовании студии версии 10.3.3 и некоторых компонентов вы увидите кучу ошибок или AV на версиях Андроид 4.0-4.4.4.

 

Есть серия статей, которые могут быть вам полезны:

[Статья][Android] Серия статей на тему Uses Permissions

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

вам прислать готовое апк и опровергнуть то, что вы написали? на вышеперечисленых версиях андроид разрешения прописываются при установке

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
1 минуту назад, Сергей Доктор сказал:

вам прислать готовое апк и опровергнуть то, что вы написали? на вышеперечисленых версиях андроид разрешения прописываются при установке

Выкладывайте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Только что, Сергей Доктор сказал:

разобрались как удалить его? 

Сейчас я разбираюсь как вы получили разрешения в обход системы безопасности...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

вот это мне и самому интересно. как вы и писали с 6 версии должно это прекратиться, но почему-то не прекратилось. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
2 минуты назад, Сергей Доктор сказал:

вот это мне и самому интересно. как вы и писали с 6 версии должно это прекратиться, но почему-то не прекратилось. 

Скинуть исходники в личку есть возможность?

 

3 минуты назад, Сергей Доктор сказал:

вот это мне и самому интересно. как вы и писали с 6 версии должно это прекратиться, но почему-то не прекратилось. 

Я знаю только один способ, но не исключено, что есть ещё...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

дело не в исхолниках, любую прогу скомпилю и будет такая. даже тупо хелоло ворлд

 

я думаю это дыра, надеюсь пофиксят, знать бы куда сообщить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
22 минуты назад, Сергей Доктор сказал:

дело не в исхолниках, любую прогу скомпилю и будет такая. даже тупо хелоло ворлд

Ок. сообщение с файлом я скрыл, т.к. не вызывает доверия. Было бы не плохо, получить от вас хоть какие-то исходники. Если такое происходит и с хеллоуворлд, то хотя бы эти исходники. Тут дело в том, что я компилю на 10.3.3 хеллоу ворлд с такими же разрешениями и у меня они не выдаются...

11 минут назад, Сергей Доктор сказал:

я думаю это дыра, надеюсь пофиксят, знать бы куда сообщить

О багах, дырах и т.п. сообщать сюда https://quality.embarcadero.com/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Ааа, ну всё ясно...

Вы выложили не тот манифест... В вашем приложении используется способ обхода о котором я говорил. Если бы сразу исходники предоставили, то всё решилось бы быстро.

На самом деле у вас указано minSdkVersion= 14 и targetSdkVersion=14. Это способ обхода запроса разрешений, но гугл обещал его выпилить... видимо забыли...))

Возвращаясь к вашему вопросу, студия 10.3.* просто меняет значения на новые (или даже пересоздаёт файл манифеста, выяснять не буду) и поэтому разрешения не выдаются. Вот и вся загадка...

 

Да, кстати, приложение ваше не запускается. Падает с чёрным экраном.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

завтра выложу что-нибудь с исходниками, подумаем тремя головами с ярославом что это за баг, мазафака )))))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
5 минут назад, Сергей Доктор сказал:

завтра выложу что-нибудь с исходниками, подумаем тремя головами с ярославом что это за баг, мазафака )))))))))

это не баг. Я же выше расписал вам в чём дело. Я декомпилировал ваш файл и там лежит другой манифест.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

теперь ясно, спасибо за ответы. а я уже думал нашел катастрофически опасную дыру ))))))))) извините за беспокойство!!!!!!!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
19 минут назад, Сергей Доктор сказал:

теперь ясно, спасибо за ответы. а я уже думал нашел катастрофически опасную дыру ))))))))) извините за беспокойство!!!!!!!!!

Пожалуйста.

Способ изначально был задуман для плавного перехода на новое АПИ, но видимо забыли убрать его...

 

Вот ваш реальный манифест из файла который вы выложили выше. (Надеюсь приложение не несёт никакого вреда?))

Спойлер

Screenshot_20191225-010349_APK Editor Pro.jpg

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

наверно достали уже кодеры-самоучки с глупыми вопросами? ))))))))) приложение вреда не несёт, оно не падает с черным экраном, оно запускает сервис и уходит в анабиоз ))))))))) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...