otzaria icon indicating copy to clipboard operation
otzaria copied to clipboard

מדוע לאפליקציית האנדרואיד יש צורך לגישה מלאה לקבצי המכשיר?

Open nirmitlamed opened this issue 1 year ago • 10 comments

ראשית רציתי להודות על ההשקעה בפיתוח אפליקציה שכזאת עם רישיון פתוח. נתקלתי בתוכנה באתר מתמחים וכאשר ניסיתי להתקין את אפליקציית האנדרואיד על המכשיר היתה דרישה לקבל גישה מלאה לקבצי המכשיר ואיני מבין מדוע צריך גישה רחבה כל כך. האם תוכל לעדכן לגירסה עם הרשאה מינימלית לתפעול שלה כדי להפיג חשש מפגיעה בפרטיות?

תודה!

nirmitlamed avatar Aug 12 '24 16:08 nirmitlamed

ראשית חשוב לי להדגיש שכל הקוד הוא פתוח וניתן לראות בדיוק מה התוכנה עושה, כך שאין חשש לפגיעה בפרטיות באמצעות גישה לא מורשית לקבצים. לעצם השאלה, היות והתוכנה קוראת קבצי טקסט מאחסון המשתמש, אז ההרשאה הזו הכרחית. ההרשאה המצומצמת יותר READ_MEDIA_IMAGES מתאימה רק לקבצי מדיה כגון תמונות. ולתת למשתמש לבחור בכל פעם את הקובץ זה לא מעשי כמובן. ניתן לקרוא עוד על ההרשאה הזו כאן: https://developer.android.com/training/data-storage/manage-all-files

כמובן שאם יימצא תחליף אשמח לוותר על ההרשאה, שמגבילה בין השאר את האפשרות להעלות את האפליקציה לgoogle-play.

בתאריך יום ב׳, 12 באוג׳ 2024, 19:15, מאת nirmitlamed ‏< @.***>:

ראשית רציתי להודות על ההשקעה בפיתוח אפליקציה שכזאת עם רישיון פתוח. נתקלתי בתוכנה באתר מתמחים וכאשר ניסיתי להתקין את אפליקציית האנדרואיד על המכשיר היתה דרישה לקבל גישה מלאה לקבצי המכשיר ואיני מבין מדוע צריך גישה רחבה כל כך. האם תוכל לעדכן לגירסה עם הרשאה מינימלית לתפעול שלה כדי להפיג חשש מפגיעה בפרטיות?

תודה!

— Reply to this email directly, view it on GitHub https://github.com/Sivan22/otzaria/issues/172, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVHE7POXXOEUKYQQQDKMJETZRDNSJAVCNFSM6AAAAABMMP4NH2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGQ3DCNBRGE2DAMQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

Sivan22 avatar Aug 13 '24 14:08 Sivan22

אין לי יכולת להבין את הקוד לצערי. האם יש אפשרות לצמצם זאת להרשאה לתיקיה בלבד? תודה על המענה.

nirmitlamed avatar Aug 13 '24 14:08 nirmitlamed

כמו שמוסבר בלינק שצירפתי, החל מאנדרואיד 11 לא יכולה להיות גישה לשום תיקייה על המכשיר בלי ההרשאה הזו.

בתאריך יום ג׳, 13 באוג׳ 2024, 17:25, מאת nirmitlamed ‏< @.***>:

אין לי יכולת להבין את הקוד לצערי. האם יש אפשרות לצמצם זאת להרשאה לתיקיה בלבד? תודה על המענה.

— Reply to this email directly, view it on GitHub https://github.com/Sivan22/otzaria/issues/172#issuecomment-2286391832, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVHE7PIJPSP6TQWQLJNJAJLZRIJMVAVCNFSM6AAAAABMMP4NH2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBWGM4TCOBTGI . You are receiving this because you commented.Message ID: @.***>

Sivan22 avatar Aug 13 '24 14:08 Sivan22

כדי להפיג חשש מפגיעה בפרטיות?

כל הקוד הוא פתוח

אין לי יכולת להבין את הקוד

ואז מה? החשש הופג, לא?

Y-PLONI avatar Aug 14 '24 17:08 Y-PLONI

ראשית רציתי להודות על ההשקעה בפיתוח אפליקציה שכזאת עם רישיון פתוח. נתקלתי בתוכנה באתר מתמחים וכאשר ניסיתי להתקין את אפליקציית האנדרואיד על המכשיר היתה דרישה לקבל גישה מלאה לקבצי המכשיר ואיני מבין מדוע צריך גישה רחבה כל כך. האם תוכל לעדכן לגירסה עם הרשאה מינימלית לתפעול שלה כדי להפיג חשש מפגיעה בפרטיות?

תודה!

כפי שאפשר לראות בקובץ הAndroidManifest.xml, ההרשאות שהאפליקציה דורשת הן רק הרשאות גישה לאחסון <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/> אך ללא גישה לרשת או כל אופציה לשדר את הנתונים החוצה.... ככה שזה די מסדר את עניין הפרטיות. הקובץ נמצא כאן, https://github.com/Sivan22/otzaria/blob/main/android/app/src/main/AndroidManifest.xml זה הקובץ שבו מצהירים על הרשאות באפליקציות אנדרואיד. אתה כמובן יכול לחפש באינטרנט עליו ולקרוא כדי לוודא שמה שאני כותב נכון :)

AshiVered avatar Aug 14 '24 20:08 AshiVered

ראשית חשוב לי להדגיש שכל הקוד הוא פתוח וניתן לראות בדיוק מה התוכנה עושה, כך שאין חשש לפגיעה בפרטיות באמצעות גישה לא מורשית לקבצים. לעצם השאלה, היות והתוכנה קוראת קבצי טקסט מאחסון המשתמש, אז ההרשאה הזו הכרחית. ההרשאה המצומצמת יותר READ_MEDIA_IMAGES מתאימה רק לקבצי מדיה כגון תמונות. ולתת למשתמש לבחור בכל פעם את הקובץ זה לא מעשי כמובן. ניתן לקרוא עוד על ההרשאה הזו כאן: https://developer.android.com/training/data-storage/manage-all-files כמובן שאם יימצא תחליף אשמח לוותר על ההרשאה, שמגבילה בין השאר את האפשרות להעלות את האפליקציה לgoogle-play. בתאריך יום ב׳, 12 באוג׳ 2024, 19:15, מאת nirmitlamed ‏< @.>: ראשית רציתי להודות על ההשקעה בפיתוח אפליקציה שכזאת עם רישיון פתוח. נתקלתי בתוכנה באתר מתמחים וכאשר ניסיתי להתקין את אפליקציית האנדרואיד על המכשיר היתה דרישה לקבל גישה מלאה לקבצי המכשיר ואיני מבין מדוע צריך גישה רחבה כל כך. האם תוכל לעדכן לגירסה עם הרשאה מינימלית לתפעול שלה כדי להפיג חשש מפגיעה בפרטיות? תודה! — Reply to this email directly, view it on GitHub <#172>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVHE7POXXOEUKYQQQDKMJETZRDNSJAVCNFSM6AAAAABMMP4NH2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGQ3DCNBRGE2DAMQ . You are receiving this because you are subscribed to this thread.Message ID: @.>

סיוון, ממתי ההגבלה הזו בגוגל פליי? יש לא מעט אפליקציות שעושות בה שימוש, למשל סיירי קבצים, נגני מוזיקה, ועוד. ראיתי בחלקם שהם מבקשים בהפעלה הראשונה לבחור את התיקיה בה עושים שימוש, (ואפשר פשוט לבחור את הראשית) אולי זה הפיתרון? צריך לחקור לעומק

AshiVered avatar Aug 14 '24 20:08 AshiVered

צריך לחקור לעומק

תוכל בבקשה לקחת את זה על עצמך? הכיוון שלי: ContentProvider להבנתי, זה נותן גישה לספרייה ספציפית. כתבתי זאת ל @Sivan22 אך לא יצא משהו ברור, עדיף שיתעסק בדברים מועילים יותר מאשר בזה, לפחות לדעתי. אם אתה מוכן לעבוד ע"ז - יהיה מצויין!

Y-PLONI avatar Aug 16 '24 09:08 Y-PLONI

צריך לחקור לעומק

תוכל בבקשה לקחת את זה על עצמך? הכיוון שלי: ContentProvider להבנתי, זה נותן גישה לספרייה ספציפית. כתבתי זאת ל @Sivan22 אך לא יצא משהו ברור, עדיף שיתעסק בדברים מועילים יותר מאשר בזה, לפחות לדעתי. אם אתה מוכן לעבוד ע"ז - יהיה מצויין!

שאלתי ב- ChatGPT והוא ציין שאפשר גם ב- ContentPriveder אבל גם ב- FilePicker שתומך בבחירה של תיקייה, רק יש צורך להפעיל את הפרמטר הזה.: You can use the FilePicker class to pick a directory. The pickFiles method has an allowFolder parameter that you can set to true to enable directory picking.

וזאת הדוגמא שהוא נתן לי:

import 'package:flutter/material.dart';
import 'package:file_picker/file_picker.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: FolderPickerExample(),
    );
  }
}

class FolderPickerExample extends StatefulWidget {
  @override
  _FolderPickerExampleState createState() => _FolderPickerExampleState();
}

class _FolderPickerExampleState extends State<FolderPickerExample> {
  String? _selectedFolderPath;

  Future<void> _pickFolder() async {
    try {
      String? selectedDirectory = await FilePicker.platform.getDirectoryPath(
        dialogTitle: 'Select Library Folder',
      );

      if (selectedDirectory != null) {
        setState(() {
          _selectedFolderPath = selectedDirectory;
        });
      } else {
        // User canceled the picker
      }
    } catch (e) {
      // Handle any errors here
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Select Library Folder'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(_selectedFolderPath ?? 'No folder selected'),
            ElevatedButton(
              onPressed: _pickFolder,
              child: Text('Pick Folder'),
            ),
          ],
        ),
      ),
    );
  }
}

פה ראיתי הסבר על ה- FilePicker וגם ראיתי למטה שמדברים על Intent שנותן גישה לתתי תיקיות להבנתי: [ACTION_OPEN_DOCUMENT_TREE] https://developer.android.com/training/data-storage/shared/documents-files#grant-access-directory

nirmitlamed avatar Aug 16 '24 11:08 nirmitlamed

צריך לחקור לעומק

תוכל בבקשה לקחת את זה על עצמך? הכיוון שלי: ContentProvider להבנתי, זה נותן גישה לספרייה ספציפית. כתבתי זאת ל @Sivan22 אך לא יצא משהו ברור, עדיף שיתעסק בדברים מועילים יותר מאשר בזה, לפחות לדעתי. אם אתה מוכן לעבוד ע"ז - יהיה מצויין!

להבנתי - תקנו אותי אם אני טועה - האפליקציה לאנדרואיד לא כתובה בJAVA, אלא בפלאטר\קוטלין. 2 שפות שאני לא יודע.

AshiVered avatar Aug 16 '24 13:08 AshiVered

האפליקציה לאנדרואיד לא כתובה בJAVA, אלא בפלאטר\קוטלין. 2 שפות שאני לא יודע.

גם אני לא יודע, מה שאני כן יודע, שפלאטר זו שפה מרובת יישומים - כלומר, שאותו קוד לווינדוס "מועיל" גם לאנדרואיד. מקווה שאני לא מקשקש. עכ"פ לווינדוס זה וודאי בדארט-פלאטר.

Y-PLONI avatar Aug 16 '24 13:08 Y-PLONI