שיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי
-
שלום לכולם,
קודם כל, לא, אני מטצער, זה לא גרסה 1.0 של קיידרואיד, והאמת שזה כמעט ולא קשור לקיידרואיד (חוץ מהשם אבל לא מצאתי לו משהו אחר מקיידרואיד קיוסק) , אוקיי אתחיל עם הקונטקסט של הדברים, ולמי שזה לא מעניין אותו, ישידלג ישיר לקטע הבה. אבל בעצם, אני ב"ה כמעט סיימתי את המודול של הויפיאן של קיידרואיד 1.0 וכל מה שקשור לסינון של התוכן (שזה לדעתי החלק ההכי קשה) ועכשיו (לפני כ-3 שבועות בערך), הייתי צריך להתחיל את האפליקצייה, כולל כל הממשק, הסינכרון עם השרת וכו וכו, שזה בעצם אפליקצייה סנטדרטית לחלוטין, אך היה לי שאלה שהרבה זמן אני חושב עליה, איזה ארכיטקטורה של אפליקציה אני אבחר... והגעתי למסקנה שבשביל קיידרואיד, ההכי טוב יהיה שילוב של כמה ביחד (למי שזה מעניין, שילוב של Feature-based + Clean + MVVM וכמובן DI עם Koin, אבל לא באתי לדבר על פן הטכני), אבל הייתה לי בעייה שאף פעם לא בניתי אפליקצייה עם 3 ביחד, ולהתחיל עם קיידראויד בלי להתנסות על משהו, לא רציתי, לכן חיפשתי פרוייקט קטן כדי לנסות את השילוב הזה והאם באמת הוא יתאים.
ואז אני רואה את הפוסט הזה, אמרתי לעצמי שזה יכול להיות מעולה, כי אני אוכל לבדוק את הארכיטקטורה וגם אוכל לבדוק אחד מההגנות של קיידרואיד נגד מי שיעשה רוט עם קיידרואיד מותקן, שזה בעצם מצב שיחסום לגמרי את הגישה לממשק של המכשיר ואפילו הכפתורים למטה עם הודעה נחמדה שהמכשיר חסום כל עוד שיש למכשיר רוט. (באמת הכזבו אותי כל אלו שלא עשו התקנה כראוי ולכלכו אח"כ בפומבי על קידירואיד ), זה לקח שבוע אוליי עד שהתחלתי בפועל, עד שסגרנו עם בעל הפוסט וכו, והוא קיבל גרסה ראשונית שעובדת אבל היום אני מפרסם אותה עם קצת תיקונים.אוקיי, אז מה זה, אני פשוט עשיתי ממשק כדי לבחור איזה אפליקציות להשאיר , וגם הוספתי כמה דברים נחמדים כמו לאשר לאיזה אפליקציות יהיה חיבור לרשת וממשק די נחמד אף שהוא לא כ"כ מושקע, כמובן שזה לא חוסם דפדפן מובנה, זה חסימה שעובדת לפי אפליקציות בלבד, עם חומת אש שניתן לבחור לאיזה אפליקציות יהיה חיבור לרשת, יש גם הגנה נגד איפוס על המכשיר, לכן שמו לב לזה. הנה כמה צילומי מסך :
וגם על טאבלט :
ניתן לנסות את האפליקצייה אך חשוב לדעת שכל עוד שלא הפעלתי את המכשיר, ניתן להוריד את החסימה ללא סיסמה, ולמי שרוצה שאני אפעיל אותו, שינסה ויפנה אליי באופן אישי.
אז הנה הקובץ : com.kdroid.kiosk(0.8.1)-release.zip
כמובן צריך מחשב עם ADB, למחוק את כל החשבונות על המכשיר ולהפעיל אותה עם הפקודה הבא :
adb shell dpm set-device-owner com.kdroid.kiosk/.framework.managers.dpm.DpmReceiver
אוקיי זהו להיום !
בברכה
זה הרבה קוד בשביל אפליקצייה כ"כ קטנה, ממש ארכיטקטורה לא מתאימה לפרוייקט קטן כזה├── core
│ ├── data
│ │ ├── local
│ │ │ └── PreferencesRepository.kt
│ │ ├── preview
│ │ │ └── FakeData.kt
│ │ └── remote
│ │ └── checkIfDeviceIsAuthorized.kt
│ ├── domain
│ │ ├── allowedapplications
│ │ │ └── AllowedApplicationsRepository.kt
│ │ ├── managers
│ │ │ └── license
│ │ │ ├── LicenseManagerImpl.kt
│ │ │ └── LicenseManager.kt
│ │ └── utils
│ │ └── Hash.kt
│ └── presentation
│ ├── components
│ │ ├── AppIcon.kt
│ │ ├── BrightnessControl.kt
│ │ ├── CenteredTitle.kt
│ │ ├── Clock.kt
│ │ ├── CodeBlock.kt
│ │ ├── ConfigScaffold.kt
│ │ ├── GeneralAppBar.kt
│ │ ├── HebrewDate.kt
│ │ ├── InstallationStepper.kt
│ │ ├── InstallerConfirmButton.kt
│ │ ├── PasswordDialog.kt
│ │ ├── PasswordField.kt
│ │ ├── ResponsiveScreen.kt
│ │ └── WarningInfo.kt
│ ├── events
│ │ ├── SnackbarEventHandler.kt
│ │ └── SnackbarEvent.kt
│ ├── navigation
│ │ ├── AppNavHost.kt
│ │ ├── NavGraph.kt
│ │ ├── NavState.kt
│ │ ├── NavTransition.kt
│ │ └── NavViewModel.kt
│ └── theme
│ ├── Color.kt
│ ├── Theme.kt
│ └── Type.kt
├── features
│ ├── config
│ │ ├── allowedappsconfig
│ │ │ ├── AllowedAppsConfigEvent.kt
│ │ │ ├── AllowedAppsConfigScreen.kt
│ │ │ ├── AllowedAppsConfigState.kt
│ │ │ └── AllowedAppsConfigViewModel.kt
│ │ ├── ConfigurationItems.kt
│ │ ├── dpmconfig
│ │ │ ├── components
│ │ │ │ └── DisclaimerDialog.kt
│ │ │ ├── DpmConfigEvents.kt
│ │ │ ├── DpmConfigScreen.kt
│ │ │ ├── DpmConfigState.kt
│ │ │ └── DpmConfigViewModel.kt
│ │ ├── networkconfig
│ │ │ ├── NetworkConfigEvent.kt
│ │ │ ├── NetworkConfigRepository.kt
│ │ │ ├── NetworkConfigScreen.kt
│ │ │ ├── NetworkConfigState.kt
│ │ │ └── NetworkConfigViewmodel.kt
│ │ ├── passwordconfig
│ │ │ ├── PasswordConfigEvents.kt
│ │ │ ├── PasswordConfigScreen.kt
│ │ │ ├── PasswordConfigState.kt
│ │ │ └── PasswordConfigViewModel.kt
│ │ └── restrictionsconfig
│ │ ├── RestrictionsConfigEvents.kt
│ │ ├── RestrictionsConfigRepository.kt
│ │ ├── RestrictionsConfigScreen.kt
│ │ ├── RestrictionsConfigState.kt
│ │ ├── RestrictionsConfigViewModel.kt
│ │ └── RestrictionsItems.kt
│ ├── home
│ │ ├── components
│ │ │ ├── batteryindicator
│ │ │ │ ├── BatteryLevel.kt
│ │ │ │ ├── BatteryLevelState.kt
│ │ │ │ └── BatteryLevelViewModel.kt
│ │ │ └── NavigationItems.kt
│ │ ├── HomeEvents.kt
│ │ ├── HomeScreen.kt
│ │ ├── HomeScreenState.kt
│ │ └── HomeScreenViewModel.kt
│ ├── loading
│ │ └── Loading.kt
│ └── settings
│ ├── SettingsScreenEvent.kt
│ ├── SettingsScreen.kt
│ ├── SettingsScreenViewModel.kt
│ └── SettingsState.kt
├── framework
│ ├── di
│ │ └── AppModule.kt
│ ├── managers
│ │ ├── applications
│ │ │ ├── manager
│ │ │ │ ├── ApplicationManagerImpl.kt
│ │ │ │ ├── ApplicationManager.kt
│ │ │ │ └── ApplicationModel.kt
│ │ │ └── receiver
│ │ │ └── ApplicationInstallationReceiver.kt
│ │ ├── batterylevel
│ │ │ ├── BatteryLevelManagerImpl.kt
│ │ │ └── BatteryLevelManager.kt
│ │ ├── dpm
│ │ │ ├── DeviceOwnerConstants.kt
│ │ │ ├── DpmManagerImpl.kt
│ │ │ ├── DpmManager.kt
│ │ │ ├── DpmReceiver.kt
│ │ │ └── FrpManager.kt
│ │ └── systemsettings
│ │ └── SystemSettingsManager.kt
│ ├── receiver
│ │ └── BootReceiver.kt
│ └── services
│ ├── BackgroundServices.kt
│ ├── FakeVpnService.kt
│ ├── ServicesStarterOnBoot.kt
│ └── utils
│ └── ServicesUtils.kt
├── MainActivity.kt
└── MainApplication.kt41 directories, 89 files
@לא-מתייאש
רק מברר
מה יקרה עם האפליקציות שמחוברות לרשת ויצטרכו בהמשך עדכון, הרי אין עדכון כי אין חנות -
@לא-מתייאש
רק מברר
מה יקרה עם האפליקציות שמחוברות לרשת ויצטרכו בהמשך עדכון, הרי אין עדכון כי אין חנות@הדובדבן-שבקצפת כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
רק מברר
מה יקרה עם האפליקציות שמחוברות לרשת ויצטרכו בהמשך עדכון, הרי אין עדכוןשמים מעדכן אפליקציות מראש
-
שלום לכולם,
קודם כל, לא, אני מטצער, זה לא גרסה 1.0 של קיידרואיד, והאמת שזה כמעט ולא קשור לקיידרואיד (חוץ מהשם אבל לא מצאתי לו משהו אחר מקיידרואיד קיוסק) , אוקיי אתחיל עם הקונטקסט של הדברים, ולמי שזה לא מעניין אותו, ישידלג ישיר לקטע הבה. אבל בעצם, אני ב"ה כמעט סיימתי את המודול של הויפיאן של קיידרואיד 1.0 וכל מה שקשור לסינון של התוכן (שזה לדעתי החלק ההכי קשה) ועכשיו (לפני כ-3 שבועות בערך), הייתי צריך להתחיל את האפליקצייה, כולל כל הממשק, הסינכרון עם השרת וכו וכו, שזה בעצם אפליקצייה סנטדרטית לחלוטין, אך היה לי שאלה שהרבה זמן אני חושב עליה, איזה ארכיטקטורה של אפליקציה אני אבחר... והגעתי למסקנה שבשביל קיידרואיד, ההכי טוב יהיה שילוב של כמה ביחד (למי שזה מעניין, שילוב של Feature-based + Clean + MVVM וכמובן DI עם Koin, אבל לא באתי לדבר על פן הטכני), אבל הייתה לי בעייה שאף פעם לא בניתי אפליקצייה עם 3 ביחד, ולהתחיל עם קיידראויד בלי להתנסות על משהו, לא רציתי, לכן חיפשתי פרוייקט קטן כדי לנסות את השילוב הזה והאם באמת הוא יתאים.
ואז אני רואה את הפוסט הזה, אמרתי לעצמי שזה יכול להיות מעולה, כי אני אוכל לבדוק את הארכיטקטורה וגם אוכל לבדוק אחד מההגנות של קיידרואיד נגד מי שיעשה רוט עם קיידרואיד מותקן, שזה בעצם מצב שיחסום לגמרי את הגישה לממשק של המכשיר ואפילו הכפתורים למטה עם הודעה נחמדה שהמכשיר חסום כל עוד שיש למכשיר רוט. (באמת הכזבו אותי כל אלו שלא עשו התקנה כראוי ולכלכו אח"כ בפומבי על קידירואיד ), זה לקח שבוע אוליי עד שהתחלתי בפועל, עד שסגרנו עם בעל הפוסט וכו, והוא קיבל גרסה ראשונית שעובדת אבל היום אני מפרסם אותה עם קצת תיקונים.אוקיי, אז מה זה, אני פשוט עשיתי ממשק כדי לבחור איזה אפליקציות להשאיר , וגם הוספתי כמה דברים נחמדים כמו לאשר לאיזה אפליקציות יהיה חיבור לרשת וממשק די נחמד אף שהוא לא כ"כ מושקע, כמובן שזה לא חוסם דפדפן מובנה, זה חסימה שעובדת לפי אפליקציות בלבד, עם חומת אש שניתן לבחור לאיזה אפליקציות יהיה חיבור לרשת, יש גם הגנה נגד איפוס על המכשיר, לכן שמו לב לזה. הנה כמה צילומי מסך :
וגם על טאבלט :
ניתן לנסות את האפליקצייה אך חשוב לדעת שכל עוד שלא הפעלתי את המכשיר, ניתן להוריד את החסימה ללא סיסמה, ולמי שרוצה שאני אפעיל אותו, שינסה ויפנה אליי באופן אישי.
אז הנה הקובץ : com.kdroid.kiosk(0.8.1)-release.zip
כמובן צריך מחשב עם ADB, למחוק את כל החשבונות על המכשיר ולהפעיל אותה עם הפקודה הבא :
adb shell dpm set-device-owner com.kdroid.kiosk/.framework.managers.dpm.DpmReceiver
אוקיי זהו להיום !
בברכה
זה הרבה קוד בשביל אפליקצייה כ"כ קטנה, ממש ארכיטקטורה לא מתאימה לפרוייקט קטן כזה├── core
│ ├── data
│ │ ├── local
│ │ │ └── PreferencesRepository.kt
│ │ ├── preview
│ │ │ └── FakeData.kt
│ │ └── remote
│ │ └── checkIfDeviceIsAuthorized.kt
│ ├── domain
│ │ ├── allowedapplications
│ │ │ └── AllowedApplicationsRepository.kt
│ │ ├── managers
│ │ │ └── license
│ │ │ ├── LicenseManagerImpl.kt
│ │ │ └── LicenseManager.kt
│ │ └── utils
│ │ └── Hash.kt
│ └── presentation
│ ├── components
│ │ ├── AppIcon.kt
│ │ ├── BrightnessControl.kt
│ │ ├── CenteredTitle.kt
│ │ ├── Clock.kt
│ │ ├── CodeBlock.kt
│ │ ├── ConfigScaffold.kt
│ │ ├── GeneralAppBar.kt
│ │ ├── HebrewDate.kt
│ │ ├── InstallationStepper.kt
│ │ ├── InstallerConfirmButton.kt
│ │ ├── PasswordDialog.kt
│ │ ├── PasswordField.kt
│ │ ├── ResponsiveScreen.kt
│ │ └── WarningInfo.kt
│ ├── events
│ │ ├── SnackbarEventHandler.kt
│ │ └── SnackbarEvent.kt
│ ├── navigation
│ │ ├── AppNavHost.kt
│ │ ├── NavGraph.kt
│ │ ├── NavState.kt
│ │ ├── NavTransition.kt
│ │ └── NavViewModel.kt
│ └── theme
│ ├── Color.kt
│ ├── Theme.kt
│ └── Type.kt
├── features
│ ├── config
│ │ ├── allowedappsconfig
│ │ │ ├── AllowedAppsConfigEvent.kt
│ │ │ ├── AllowedAppsConfigScreen.kt
│ │ │ ├── AllowedAppsConfigState.kt
│ │ │ └── AllowedAppsConfigViewModel.kt
│ │ ├── ConfigurationItems.kt
│ │ ├── dpmconfig
│ │ │ ├── components
│ │ │ │ └── DisclaimerDialog.kt
│ │ │ ├── DpmConfigEvents.kt
│ │ │ ├── DpmConfigScreen.kt
│ │ │ ├── DpmConfigState.kt
│ │ │ └── DpmConfigViewModel.kt
│ │ ├── networkconfig
│ │ │ ├── NetworkConfigEvent.kt
│ │ │ ├── NetworkConfigRepository.kt
│ │ │ ├── NetworkConfigScreen.kt
│ │ │ ├── NetworkConfigState.kt
│ │ │ └── NetworkConfigViewmodel.kt
│ │ ├── passwordconfig
│ │ │ ├── PasswordConfigEvents.kt
│ │ │ ├── PasswordConfigScreen.kt
│ │ │ ├── PasswordConfigState.kt
│ │ │ └── PasswordConfigViewModel.kt
│ │ └── restrictionsconfig
│ │ ├── RestrictionsConfigEvents.kt
│ │ ├── RestrictionsConfigRepository.kt
│ │ ├── RestrictionsConfigScreen.kt
│ │ ├── RestrictionsConfigState.kt
│ │ ├── RestrictionsConfigViewModel.kt
│ │ └── RestrictionsItems.kt
│ ├── home
│ │ ├── components
│ │ │ ├── batteryindicator
│ │ │ │ ├── BatteryLevel.kt
│ │ │ │ ├── BatteryLevelState.kt
│ │ │ │ └── BatteryLevelViewModel.kt
│ │ │ └── NavigationItems.kt
│ │ ├── HomeEvents.kt
│ │ ├── HomeScreen.kt
│ │ ├── HomeScreenState.kt
│ │ └── HomeScreenViewModel.kt
│ ├── loading
│ │ └── Loading.kt
│ └── settings
│ ├── SettingsScreenEvent.kt
│ ├── SettingsScreen.kt
│ ├── SettingsScreenViewModel.kt
│ └── SettingsState.kt
├── framework
│ ├── di
│ │ └── AppModule.kt
│ ├── managers
│ │ ├── applications
│ │ │ ├── manager
│ │ │ │ ├── ApplicationManagerImpl.kt
│ │ │ │ ├── ApplicationManager.kt
│ │ │ │ └── ApplicationModel.kt
│ │ │ └── receiver
│ │ │ └── ApplicationInstallationReceiver.kt
│ │ ├── batterylevel
│ │ │ ├── BatteryLevelManagerImpl.kt
│ │ │ └── BatteryLevelManager.kt
│ │ ├── dpm
│ │ │ ├── DeviceOwnerConstants.kt
│ │ │ ├── DpmManagerImpl.kt
│ │ │ ├── DpmManager.kt
│ │ │ ├── DpmReceiver.kt
│ │ │ └── FrpManager.kt
│ │ └── systemsettings
│ │ └── SystemSettingsManager.kt
│ ├── receiver
│ │ └── BootReceiver.kt
│ └── services
│ ├── BackgroundServices.kt
│ ├── FakeVpnService.kt
│ ├── ServicesStarterOnBoot.kt
│ └── utils
│ └── ServicesUtils.kt
├── MainActivity.kt
└── MainApplication.kt41 directories, 89 files
@לא-מתייאש כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
אפילו הכפתורים למטה עם הודעה נחמדה שהמכשיר חסום כל עוד שיש למכשיר רוט
אבל בוטלואדר פתוח\חוסר בשירותי גוגל - אפשרי?
-
@לא-מתייאש כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
אפילו הכפתורים למטה עם הודעה נחמדה שהמכשיר חסום כל עוד שיש למכשיר רוט
אבל בוטלואדר פתוח\חוסר בשירותי גוגל - אפשרי?
@מישהו12 כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
@לא-מתייאש כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
אפילו הכפתורים למטה עם הודעה נחמדה שהמכשיר חסום כל עוד שיש למכשיר רוט
אבל בוטלואדר פתוח\חוסר בשירותי גוגל - אפשרי?
על האפליקצייה הזאת הכל אפשרי, אבל בקיידרואיד 1.0 זה לא יהיה אפשרי להתקין אותו בלי שירותי גוגל, הייתי רוצה להגביל אותו גם לבוטלואדר סגור אבל לא מצאתי דרך לזהות את זה
-
@לא-מתייאש כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
כמובן צריך מחשב עם ADB, למחוק את כל החשבונות על המכשיר ולהפעיל אותה עם הפקודה הבא :
מי יכול לתת פירוט קטן איך בדיוק לעשות
יש לי ADB ואני טיפ טיפה מבין בזה...
@מישהו12@שמעון-חבצלת כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
@לא-מתייאש כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
כמובן צריך מחשב עם ADB, למחוק את כל החשבונות על המכשיר ולהפעיל אותה עם הפקודה הבא :
מי יכול לתת פירוט קטן איך בדיוק לעשות
יש לי ADB ואני טיפ טיפה מבין בזה...
@מישהו12תפתח שורת הפקודה בנתיב של הadb
תקלידadb
ואז תקליד את הקוד שיש בפוסט הראשון.
כמובן שהמכשיר אמור להיות עם ניפוי באגים פתוח, ולצאת מכל החשבונות...
-
@שמעון-חבצלת כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
@לא-מתייאש כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
כמובן צריך מחשב עם ADB, למחוק את כל החשבונות על המכשיר ולהפעיל אותה עם הפקודה הבא :
מי יכול לתת פירוט קטן איך בדיוק לעשות
יש לי ADB ואני טיפ טיפה מבין בזה...
@מישהו12תפתח שורת הפקודה בנתיב של הadb
תקלידadb
ואז תקליד את הקוד שיש בפוסט הראשון.
כמובן שהמכשיר אמור להיות עם ניפוי באגים פתוח, ולצאת מכל החשבונות...
@יוסף-אלחנן תודה רבה!!
איפה אני אמור לשים את הקובץ הנ"ל? -
@יוסף-אלחנן תודה רבה!!
איפה אני אמור לשים את הקובץ הנ"ל?@שמעון-חבצלת איזה?
את הadb? -
@שמעון-חבצלת איזה?
את הadb?@יוסף-אלחנן לא, אתה הקובץ זיפ שהוא העלה
-
@יוסף-אלחנן לא, אתה הקובץ זיפ שהוא העלה
@שמעון-חבצלת אתה אמור להתקין את זה על המכשיר.
ולפעול לפי ההוראות...
-
שלום לכולם,
קודם כל, לא, אני מטצער, זה לא גרסה 1.0 של קיידרואיד, והאמת שזה כמעט ולא קשור לקיידרואיד (חוץ מהשם אבל לא מצאתי לו משהו אחר מקיידרואיד קיוסק) , אוקיי אתחיל עם הקונטקסט של הדברים, ולמי שזה לא מעניין אותו, ישידלג ישיר לקטע הבה. אבל בעצם, אני ב"ה כמעט סיימתי את המודול של הויפיאן של קיידרואיד 1.0 וכל מה שקשור לסינון של התוכן (שזה לדעתי החלק ההכי קשה) ועכשיו (לפני כ-3 שבועות בערך), הייתי צריך להתחיל את האפליקצייה, כולל כל הממשק, הסינכרון עם השרת וכו וכו, שזה בעצם אפליקצייה סנטדרטית לחלוטין, אך היה לי שאלה שהרבה זמן אני חושב עליה, איזה ארכיטקטורה של אפליקציה אני אבחר... והגעתי למסקנה שבשביל קיידרואיד, ההכי טוב יהיה שילוב של כמה ביחד (למי שזה מעניין, שילוב של Feature-based + Clean + MVVM וכמובן DI עם Koin, אבל לא באתי לדבר על פן הטכני), אבל הייתה לי בעייה שאף פעם לא בניתי אפליקצייה עם 3 ביחד, ולהתחיל עם קיידראויד בלי להתנסות על משהו, לא רציתי, לכן חיפשתי פרוייקט קטן כדי לנסות את השילוב הזה והאם באמת הוא יתאים.
ואז אני רואה את הפוסט הזה, אמרתי לעצמי שזה יכול להיות מעולה, כי אני אוכל לבדוק את הארכיטקטורה וגם אוכל לבדוק אחד מההגנות של קיידרואיד נגד מי שיעשה רוט עם קיידרואיד מותקן, שזה בעצם מצב שיחסום לגמרי את הגישה לממשק של המכשיר ואפילו הכפתורים למטה עם הודעה נחמדה שהמכשיר חסום כל עוד שיש למכשיר רוט. (באמת הכזבו אותי כל אלו שלא עשו התקנה כראוי ולכלכו אח"כ בפומבי על קידירואיד ), זה לקח שבוע אוליי עד שהתחלתי בפועל, עד שסגרנו עם בעל הפוסט וכו, והוא קיבל גרסה ראשונית שעובדת אבל היום אני מפרסם אותה עם קצת תיקונים.אוקיי, אז מה זה, אני פשוט עשיתי ממשק כדי לבחור איזה אפליקציות להשאיר , וגם הוספתי כמה דברים נחמדים כמו לאשר לאיזה אפליקציות יהיה חיבור לרשת וממשק די נחמד אף שהוא לא כ"כ מושקע, כמובן שזה לא חוסם דפדפן מובנה, זה חסימה שעובדת לפי אפליקציות בלבד, עם חומת אש שניתן לבחור לאיזה אפליקציות יהיה חיבור לרשת, יש גם הגנה נגד איפוס על המכשיר, לכן שמו לב לזה. הנה כמה צילומי מסך :
וגם על טאבלט :
ניתן לנסות את האפליקצייה אך חשוב לדעת שכל עוד שלא הפעלתי את המכשיר, ניתן להוריד את החסימה ללא סיסמה, ולמי שרוצה שאני אפעיל אותו, שינסה ויפנה אליי באופן אישי.
אז הנה הקובץ : com.kdroid.kiosk(0.8.1)-release.zip
כמובן צריך מחשב עם ADB, למחוק את כל החשבונות על המכשיר ולהפעיל אותה עם הפקודה הבא :
adb shell dpm set-device-owner com.kdroid.kiosk/.framework.managers.dpm.DpmReceiver
אוקיי זהו להיום !
בברכה
זה הרבה קוד בשביל אפליקצייה כ"כ קטנה, ממש ארכיטקטורה לא מתאימה לפרוייקט קטן כזה├── core
│ ├── data
│ │ ├── local
│ │ │ └── PreferencesRepository.kt
│ │ ├── preview
│ │ │ └── FakeData.kt
│ │ └── remote
│ │ └── checkIfDeviceIsAuthorized.kt
│ ├── domain
│ │ ├── allowedapplications
│ │ │ └── AllowedApplicationsRepository.kt
│ │ ├── managers
│ │ │ └── license
│ │ │ ├── LicenseManagerImpl.kt
│ │ │ └── LicenseManager.kt
│ │ └── utils
│ │ └── Hash.kt
│ └── presentation
│ ├── components
│ │ ├── AppIcon.kt
│ │ ├── BrightnessControl.kt
│ │ ├── CenteredTitle.kt
│ │ ├── Clock.kt
│ │ ├── CodeBlock.kt
│ │ ├── ConfigScaffold.kt
│ │ ├── GeneralAppBar.kt
│ │ ├── HebrewDate.kt
│ │ ├── InstallationStepper.kt
│ │ ├── InstallerConfirmButton.kt
│ │ ├── PasswordDialog.kt
│ │ ├── PasswordField.kt
│ │ ├── ResponsiveScreen.kt
│ │ └── WarningInfo.kt
│ ├── events
│ │ ├── SnackbarEventHandler.kt
│ │ └── SnackbarEvent.kt
│ ├── navigation
│ │ ├── AppNavHost.kt
│ │ ├── NavGraph.kt
│ │ ├── NavState.kt
│ │ ├── NavTransition.kt
│ │ └── NavViewModel.kt
│ └── theme
│ ├── Color.kt
│ ├── Theme.kt
│ └── Type.kt
├── features
│ ├── config
│ │ ├── allowedappsconfig
│ │ │ ├── AllowedAppsConfigEvent.kt
│ │ │ ├── AllowedAppsConfigScreen.kt
│ │ │ ├── AllowedAppsConfigState.kt
│ │ │ └── AllowedAppsConfigViewModel.kt
│ │ ├── ConfigurationItems.kt
│ │ ├── dpmconfig
│ │ │ ├── components
│ │ │ │ └── DisclaimerDialog.kt
│ │ │ ├── DpmConfigEvents.kt
│ │ │ ├── DpmConfigScreen.kt
│ │ │ ├── DpmConfigState.kt
│ │ │ └── DpmConfigViewModel.kt
│ │ ├── networkconfig
│ │ │ ├── NetworkConfigEvent.kt
│ │ │ ├── NetworkConfigRepository.kt
│ │ │ ├── NetworkConfigScreen.kt
│ │ │ ├── NetworkConfigState.kt
│ │ │ └── NetworkConfigViewmodel.kt
│ │ ├── passwordconfig
│ │ │ ├── PasswordConfigEvents.kt
│ │ │ ├── PasswordConfigScreen.kt
│ │ │ ├── PasswordConfigState.kt
│ │ │ └── PasswordConfigViewModel.kt
│ │ └── restrictionsconfig
│ │ ├── RestrictionsConfigEvents.kt
│ │ ├── RestrictionsConfigRepository.kt
│ │ ├── RestrictionsConfigScreen.kt
│ │ ├── RestrictionsConfigState.kt
│ │ ├── RestrictionsConfigViewModel.kt
│ │ └── RestrictionsItems.kt
│ ├── home
│ │ ├── components
│ │ │ ├── batteryindicator
│ │ │ │ ├── BatteryLevel.kt
│ │ │ │ ├── BatteryLevelState.kt
│ │ │ │ └── BatteryLevelViewModel.kt
│ │ │ └── NavigationItems.kt
│ │ ├── HomeEvents.kt
│ │ ├── HomeScreen.kt
│ │ ├── HomeScreenState.kt
│ │ └── HomeScreenViewModel.kt
│ ├── loading
│ │ └── Loading.kt
│ └── settings
│ ├── SettingsScreenEvent.kt
│ ├── SettingsScreen.kt
│ ├── SettingsScreenViewModel.kt
│ └── SettingsState.kt
├── framework
│ ├── di
│ │ └── AppModule.kt
│ ├── managers
│ │ ├── applications
│ │ │ ├── manager
│ │ │ │ ├── ApplicationManagerImpl.kt
│ │ │ │ ├── ApplicationManager.kt
│ │ │ │ └── ApplicationModel.kt
│ │ │ └── receiver
│ │ │ └── ApplicationInstallationReceiver.kt
│ │ ├── batterylevel
│ │ │ ├── BatteryLevelManagerImpl.kt
│ │ │ └── BatteryLevelManager.kt
│ │ ├── dpm
│ │ │ ├── DeviceOwnerConstants.kt
│ │ │ ├── DpmManagerImpl.kt
│ │ │ ├── DpmManager.kt
│ │ │ ├── DpmReceiver.kt
│ │ │ └── FrpManager.kt
│ │ └── systemsettings
│ │ └── SystemSettingsManager.kt
│ ├── receiver
│ │ └── BootReceiver.kt
│ └── services
│ ├── BackgroundServices.kt
│ ├── FakeVpnService.kt
│ ├── ServicesStarterOnBoot.kt
│ └── utils
│ └── ServicesUtils.kt
├── MainActivity.kt
└── MainApplication.kt41 directories, 89 files
@לא-מתייאש ווואאאאוווווו לפי התאריכים זה לקח רק קצת יותר משבוע... מטורף...
ושאפו ל @יוסף-אלחנן שככה"נ יש לו גם חלק בזיכוי הרבים שהרי בסופו של דבר @לא-מתייאש יצר את זה בזכות הפוסט שלו...
-
שלום לכולם,
קודם כל, לא, אני מטצער, זה לא גרסה 1.0 של קיידרואיד, והאמת שזה כמעט ולא קשור לקיידרואיד (חוץ מהשם אבל לא מצאתי לו משהו אחר מקיידרואיד קיוסק) , אוקיי אתחיל עם הקונטקסט של הדברים, ולמי שזה לא מעניין אותו, ישידלג ישיר לקטע הבה. אבל בעצם, אני ב"ה כמעט סיימתי את המודול של הויפיאן של קיידרואיד 1.0 וכל מה שקשור לסינון של התוכן (שזה לדעתי החלק ההכי קשה) ועכשיו (לפני כ-3 שבועות בערך), הייתי צריך להתחיל את האפליקצייה, כולל כל הממשק, הסינכרון עם השרת וכו וכו, שזה בעצם אפליקצייה סנטדרטית לחלוטין, אך היה לי שאלה שהרבה זמן אני חושב עליה, איזה ארכיטקטורה של אפליקציה אני אבחר... והגעתי למסקנה שבשביל קיידרואיד, ההכי טוב יהיה שילוב של כמה ביחד (למי שזה מעניין, שילוב של Feature-based + Clean + MVVM וכמובן DI עם Koin, אבל לא באתי לדבר על פן הטכני), אבל הייתה לי בעייה שאף פעם לא בניתי אפליקצייה עם 3 ביחד, ולהתחיל עם קיידראויד בלי להתנסות על משהו, לא רציתי, לכן חיפשתי פרוייקט קטן כדי לנסות את השילוב הזה והאם באמת הוא יתאים.
ואז אני רואה את הפוסט הזה, אמרתי לעצמי שזה יכול להיות מעולה, כי אני אוכל לבדוק את הארכיטקטורה וגם אוכל לבדוק אחד מההגנות של קיידרואיד נגד מי שיעשה רוט עם קיידרואיד מותקן, שזה בעצם מצב שיחסום לגמרי את הגישה לממשק של המכשיר ואפילו הכפתורים למטה עם הודעה נחמדה שהמכשיר חסום כל עוד שיש למכשיר רוט. (באמת הכזבו אותי כל אלו שלא עשו התקנה כראוי ולכלכו אח"כ בפומבי על קידירואיד ), זה לקח שבוע אוליי עד שהתחלתי בפועל, עד שסגרנו עם בעל הפוסט וכו, והוא קיבל גרסה ראשונית שעובדת אבל היום אני מפרסם אותה עם קצת תיקונים.אוקיי, אז מה זה, אני פשוט עשיתי ממשק כדי לבחור איזה אפליקציות להשאיר , וגם הוספתי כמה דברים נחמדים כמו לאשר לאיזה אפליקציות יהיה חיבור לרשת וממשק די נחמד אף שהוא לא כ"כ מושקע, כמובן שזה לא חוסם דפדפן מובנה, זה חסימה שעובדת לפי אפליקציות בלבד, עם חומת אש שניתן לבחור לאיזה אפליקציות יהיה חיבור לרשת, יש גם הגנה נגד איפוס על המכשיר, לכן שמו לב לזה. הנה כמה צילומי מסך :
וגם על טאבלט :
ניתן לנסות את האפליקצייה אך חשוב לדעת שכל עוד שלא הפעלתי את המכשיר, ניתן להוריד את החסימה ללא סיסמה, ולמי שרוצה שאני אפעיל אותו, שינסה ויפנה אליי באופן אישי.
אז הנה הקובץ : com.kdroid.kiosk(0.8.1)-release.zip
כמובן צריך מחשב עם ADB, למחוק את כל החשבונות על המכשיר ולהפעיל אותה עם הפקודה הבא :
adb shell dpm set-device-owner com.kdroid.kiosk/.framework.managers.dpm.DpmReceiver
אוקיי זהו להיום !
בברכה
זה הרבה קוד בשביל אפליקצייה כ"כ קטנה, ממש ארכיטקטורה לא מתאימה לפרוייקט קטן כזה├── core
│ ├── data
│ │ ├── local
│ │ │ └── PreferencesRepository.kt
│ │ ├── preview
│ │ │ └── FakeData.kt
│ │ └── remote
│ │ └── checkIfDeviceIsAuthorized.kt
│ ├── domain
│ │ ├── allowedapplications
│ │ │ └── AllowedApplicationsRepository.kt
│ │ ├── managers
│ │ │ └── license
│ │ │ ├── LicenseManagerImpl.kt
│ │ │ └── LicenseManager.kt
│ │ └── utils
│ │ └── Hash.kt
│ └── presentation
│ ├── components
│ │ ├── AppIcon.kt
│ │ ├── BrightnessControl.kt
│ │ ├── CenteredTitle.kt
│ │ ├── Clock.kt
│ │ ├── CodeBlock.kt
│ │ ├── ConfigScaffold.kt
│ │ ├── GeneralAppBar.kt
│ │ ├── HebrewDate.kt
│ │ ├── InstallationStepper.kt
│ │ ├── InstallerConfirmButton.kt
│ │ ├── PasswordDialog.kt
│ │ ├── PasswordField.kt
│ │ ├── ResponsiveScreen.kt
│ │ └── WarningInfo.kt
│ ├── events
│ │ ├── SnackbarEventHandler.kt
│ │ └── SnackbarEvent.kt
│ ├── navigation
│ │ ├── AppNavHost.kt
│ │ ├── NavGraph.kt
│ │ ├── NavState.kt
│ │ ├── NavTransition.kt
│ │ └── NavViewModel.kt
│ └── theme
│ ├── Color.kt
│ ├── Theme.kt
│ └── Type.kt
├── features
│ ├── config
│ │ ├── allowedappsconfig
│ │ │ ├── AllowedAppsConfigEvent.kt
│ │ │ ├── AllowedAppsConfigScreen.kt
│ │ │ ├── AllowedAppsConfigState.kt
│ │ │ └── AllowedAppsConfigViewModel.kt
│ │ ├── ConfigurationItems.kt
│ │ ├── dpmconfig
│ │ │ ├── components
│ │ │ │ └── DisclaimerDialog.kt
│ │ │ ├── DpmConfigEvents.kt
│ │ │ ├── DpmConfigScreen.kt
│ │ │ ├── DpmConfigState.kt
│ │ │ └── DpmConfigViewModel.kt
│ │ ├── networkconfig
│ │ │ ├── NetworkConfigEvent.kt
│ │ │ ├── NetworkConfigRepository.kt
│ │ │ ├── NetworkConfigScreen.kt
│ │ │ ├── NetworkConfigState.kt
│ │ │ └── NetworkConfigViewmodel.kt
│ │ ├── passwordconfig
│ │ │ ├── PasswordConfigEvents.kt
│ │ │ ├── PasswordConfigScreen.kt
│ │ │ ├── PasswordConfigState.kt
│ │ │ └── PasswordConfigViewModel.kt
│ │ └── restrictionsconfig
│ │ ├── RestrictionsConfigEvents.kt
│ │ ├── RestrictionsConfigRepository.kt
│ │ ├── RestrictionsConfigScreen.kt
│ │ ├── RestrictionsConfigState.kt
│ │ ├── RestrictionsConfigViewModel.kt
│ │ └── RestrictionsItems.kt
│ ├── home
│ │ ├── components
│ │ │ ├── batteryindicator
│ │ │ │ ├── BatteryLevel.kt
│ │ │ │ ├── BatteryLevelState.kt
│ │ │ │ └── BatteryLevelViewModel.kt
│ │ │ └── NavigationItems.kt
│ │ ├── HomeEvents.kt
│ │ ├── HomeScreen.kt
│ │ ├── HomeScreenState.kt
│ │ └── HomeScreenViewModel.kt
│ ├── loading
│ │ └── Loading.kt
│ └── settings
│ ├── SettingsScreenEvent.kt
│ ├── SettingsScreen.kt
│ ├── SettingsScreenViewModel.kt
│ └── SettingsState.kt
├── framework
│ ├── di
│ │ └── AppModule.kt
│ ├── managers
│ │ ├── applications
│ │ │ ├── manager
│ │ │ │ ├── ApplicationManagerImpl.kt
│ │ │ │ ├── ApplicationManager.kt
│ │ │ │ └── ApplicationModel.kt
│ │ │ └── receiver
│ │ │ └── ApplicationInstallationReceiver.kt
│ │ ├── batterylevel
│ │ │ ├── BatteryLevelManagerImpl.kt
│ │ │ └── BatteryLevelManager.kt
│ │ ├── dpm
│ │ │ ├── DeviceOwnerConstants.kt
│ │ │ ├── DpmManagerImpl.kt
│ │ │ ├── DpmManager.kt
│ │ │ ├── DpmReceiver.kt
│ │ │ └── FrpManager.kt
│ │ └── systemsettings
│ │ └── SystemSettingsManager.kt
│ ├── receiver
│ │ └── BootReceiver.kt
│ └── services
│ ├── BackgroundServices.kt
│ ├── FakeVpnService.kt
│ ├── ServicesStarterOnBoot.kt
│ └── utils
│ └── ServicesUtils.kt
├── MainActivity.kt
└── MainApplication.kt41 directories, 89 files
@לא-מתייאש אני מבקש ממך להמשיך עם זה בכל המרץ והכוח, כרגע הקיידרואיד שלך, זה הדבר היחיד שהצלחתי הוא יותר נכון שלא הצלחתי לשנות אחרי התקנה מכשיר הניסויים שלי כיום זה מכשיר שבעבר היה של הדרן וד"ל
-
שלום לכולם,
קודם כל, לא, אני מטצער, זה לא גרסה 1.0 של קיידרואיד, והאמת שזה כמעט ולא קשור לקיידרואיד (חוץ מהשם אבל לא מצאתי לו משהו אחר מקיידרואיד קיוסק) , אוקיי אתחיל עם הקונטקסט של הדברים, ולמי שזה לא מעניין אותו, ישידלג ישיר לקטע הבה. אבל בעצם, אני ב"ה כמעט סיימתי את המודול של הויפיאן של קיידרואיד 1.0 וכל מה שקשור לסינון של התוכן (שזה לדעתי החלק ההכי קשה) ועכשיו (לפני כ-3 שבועות בערך), הייתי צריך להתחיל את האפליקצייה, כולל כל הממשק, הסינכרון עם השרת וכו וכו, שזה בעצם אפליקצייה סנטדרטית לחלוטין, אך היה לי שאלה שהרבה זמן אני חושב עליה, איזה ארכיטקטורה של אפליקציה אני אבחר... והגעתי למסקנה שבשביל קיידרואיד, ההכי טוב יהיה שילוב של כמה ביחד (למי שזה מעניין, שילוב של Feature-based + Clean + MVVM וכמובן DI עם Koin, אבל לא באתי לדבר על פן הטכני), אבל הייתה לי בעייה שאף פעם לא בניתי אפליקצייה עם 3 ביחד, ולהתחיל עם קיידראויד בלי להתנסות על משהו, לא רציתי, לכן חיפשתי פרוייקט קטן כדי לנסות את השילוב הזה והאם באמת הוא יתאים.
ואז אני רואה את הפוסט הזה, אמרתי לעצמי שזה יכול להיות מעולה, כי אני אוכל לבדוק את הארכיטקטורה וגם אוכל לבדוק אחד מההגנות של קיידרואיד נגד מי שיעשה רוט עם קיידרואיד מותקן, שזה בעצם מצב שיחסום לגמרי את הגישה לממשק של המכשיר ואפילו הכפתורים למטה עם הודעה נחמדה שהמכשיר חסום כל עוד שיש למכשיר רוט. (באמת הכזבו אותי כל אלו שלא עשו התקנה כראוי ולכלכו אח"כ בפומבי על קידירואיד ), זה לקח שבוע אוליי עד שהתחלתי בפועל, עד שסגרנו עם בעל הפוסט וכו, והוא קיבל גרסה ראשונית שעובדת אבל היום אני מפרסם אותה עם קצת תיקונים.אוקיי, אז מה זה, אני פשוט עשיתי ממשק כדי לבחור איזה אפליקציות להשאיר , וגם הוספתי כמה דברים נחמדים כמו לאשר לאיזה אפליקציות יהיה חיבור לרשת וממשק די נחמד אף שהוא לא כ"כ מושקע, כמובן שזה לא חוסם דפדפן מובנה, זה חסימה שעובדת לפי אפליקציות בלבד, עם חומת אש שניתן לבחור לאיזה אפליקציות יהיה חיבור לרשת, יש גם הגנה נגד איפוס על המכשיר, לכן שמו לב לזה. הנה כמה צילומי מסך :
וגם על טאבלט :
ניתן לנסות את האפליקצייה אך חשוב לדעת שכל עוד שלא הפעלתי את המכשיר, ניתן להוריד את החסימה ללא סיסמה, ולמי שרוצה שאני אפעיל אותו, שינסה ויפנה אליי באופן אישי.
אז הנה הקובץ : com.kdroid.kiosk(0.8.1)-release.zip
כמובן צריך מחשב עם ADB, למחוק את כל החשבונות על המכשיר ולהפעיל אותה עם הפקודה הבא :
adb shell dpm set-device-owner com.kdroid.kiosk/.framework.managers.dpm.DpmReceiver
אוקיי זהו להיום !
בברכה
זה הרבה קוד בשביל אפליקצייה כ"כ קטנה, ממש ארכיטקטורה לא מתאימה לפרוייקט קטן כזה├── core
│ ├── data
│ │ ├── local
│ │ │ └── PreferencesRepository.kt
│ │ ├── preview
│ │ │ └── FakeData.kt
│ │ └── remote
│ │ └── checkIfDeviceIsAuthorized.kt
│ ├── domain
│ │ ├── allowedapplications
│ │ │ └── AllowedApplicationsRepository.kt
│ │ ├── managers
│ │ │ └── license
│ │ │ ├── LicenseManagerImpl.kt
│ │ │ └── LicenseManager.kt
│ │ └── utils
│ │ └── Hash.kt
│ └── presentation
│ ├── components
│ │ ├── AppIcon.kt
│ │ ├── BrightnessControl.kt
│ │ ├── CenteredTitle.kt
│ │ ├── Clock.kt
│ │ ├── CodeBlock.kt
│ │ ├── ConfigScaffold.kt
│ │ ├── GeneralAppBar.kt
│ │ ├── HebrewDate.kt
│ │ ├── InstallationStepper.kt
│ │ ├── InstallerConfirmButton.kt
│ │ ├── PasswordDialog.kt
│ │ ├── PasswordField.kt
│ │ ├── ResponsiveScreen.kt
│ │ └── WarningInfo.kt
│ ├── events
│ │ ├── SnackbarEventHandler.kt
│ │ └── SnackbarEvent.kt
│ ├── navigation
│ │ ├── AppNavHost.kt
│ │ ├── NavGraph.kt
│ │ ├── NavState.kt
│ │ ├── NavTransition.kt
│ │ └── NavViewModel.kt
│ └── theme
│ ├── Color.kt
│ ├── Theme.kt
│ └── Type.kt
├── features
│ ├── config
│ │ ├── allowedappsconfig
│ │ │ ├── AllowedAppsConfigEvent.kt
│ │ │ ├── AllowedAppsConfigScreen.kt
│ │ │ ├── AllowedAppsConfigState.kt
│ │ │ └── AllowedAppsConfigViewModel.kt
│ │ ├── ConfigurationItems.kt
│ │ ├── dpmconfig
│ │ │ ├── components
│ │ │ │ └── DisclaimerDialog.kt
│ │ │ ├── DpmConfigEvents.kt
│ │ │ ├── DpmConfigScreen.kt
│ │ │ ├── DpmConfigState.kt
│ │ │ └── DpmConfigViewModel.kt
│ │ ├── networkconfig
│ │ │ ├── NetworkConfigEvent.kt
│ │ │ ├── NetworkConfigRepository.kt
│ │ │ ├── NetworkConfigScreen.kt
│ │ │ ├── NetworkConfigState.kt
│ │ │ └── NetworkConfigViewmodel.kt
│ │ ├── passwordconfig
│ │ │ ├── PasswordConfigEvents.kt
│ │ │ ├── PasswordConfigScreen.kt
│ │ │ ├── PasswordConfigState.kt
│ │ │ └── PasswordConfigViewModel.kt
│ │ └── restrictionsconfig
│ │ ├── RestrictionsConfigEvents.kt
│ │ ├── RestrictionsConfigRepository.kt
│ │ ├── RestrictionsConfigScreen.kt
│ │ ├── RestrictionsConfigState.kt
│ │ ├── RestrictionsConfigViewModel.kt
│ │ └── RestrictionsItems.kt
│ ├── home
│ │ ├── components
│ │ │ ├── batteryindicator
│ │ │ │ ├── BatteryLevel.kt
│ │ │ │ ├── BatteryLevelState.kt
│ │ │ │ └── BatteryLevelViewModel.kt
│ │ │ └── NavigationItems.kt
│ │ ├── HomeEvents.kt
│ │ ├── HomeScreen.kt
│ │ ├── HomeScreenState.kt
│ │ └── HomeScreenViewModel.kt
│ ├── loading
│ │ └── Loading.kt
│ └── settings
│ ├── SettingsScreenEvent.kt
│ ├── SettingsScreen.kt
│ ├── SettingsScreenViewModel.kt
│ └── SettingsState.kt
├── framework
│ ├── di
│ │ └── AppModule.kt
│ ├── managers
│ │ ├── applications
│ │ │ ├── manager
│ │ │ │ ├── ApplicationManagerImpl.kt
│ │ │ │ ├── ApplicationManager.kt
│ │ │ │ └── ApplicationModel.kt
│ │ │ └── receiver
│ │ │ └── ApplicationInstallationReceiver.kt
│ │ ├── batterylevel
│ │ │ ├── BatteryLevelManagerImpl.kt
│ │ │ └── BatteryLevelManager.kt
│ │ ├── dpm
│ │ │ ├── DeviceOwnerConstants.kt
│ │ │ ├── DpmManagerImpl.kt
│ │ │ ├── DpmManager.kt
│ │ │ ├── DpmReceiver.kt
│ │ │ └── FrpManager.kt
│ │ └── systemsettings
│ │ └── SystemSettingsManager.kt
│ ├── receiver
│ │ └── BootReceiver.kt
│ └── services
│ ├── BackgroundServices.kt
│ ├── FakeVpnService.kt
│ ├── ServicesStarterOnBoot.kt
│ └── utils
│ └── ServicesUtils.kt
├── MainActivity.kt
└── MainApplication.kt41 directories, 89 files
@לא-מתייאש מדהים! עולה כסף? (מלבד מה שמצוה לתת...)
-
@לא-מתייאש מדהים! עולה כסף? (מלבד מה שמצוה לתת...)
@Ykingsmart כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
@לא-מתייאש מדהים! עולה כסף? (מלבד מה שמצוה לתת...)
כן
אפשר לנסות בחינם אבל בלי אופציה לחסימה אמיתית
כלומר ניתן להסיר בלחיצה כפתור -
@Ykingsmart כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
@לא-מתייאש מדהים! עולה כסף? (מלבד מה שמצוה לתת...)
כן
אפשר לנסות בחינם אבל בלי אופציה לחסימה אמיתית
כלומר ניתן להסיר בלחיצה כפתור@מתושלח-הבבלי כבר נחמץ ליבי...
כי אני שילמתי על זה, ופתאום אני רואה שיש את זה בחינם...
כמובן שהייתי שמח אם דבר כזה עומד לציבור בחינם, אבל @לא-מתייאש עבד והשקיע שעות, עמל ויזע בפרוייקט.
אז בהחלט מגיע לו!
-
@Ykingsmart כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
@לא-מתייאש מדהים! עולה כסף? (מלבד מה שמצוה לתת...)
כן
אפשר לנסות בחינם אבל בלי אופציה לחסימה אמיתית
כלומר ניתן להסיר בלחיצה כפתור@מתושלח-הבבלי כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
כן
כמה? או שאתה צעדיף שכל אחד ישאל את זה באופן אישי
-
@מתושלח-הבבלי כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
כן
כמה? או שאתה צעדיף שכל אחד ישאל את זה באופן אישי
-
המחיר הוא של 75 דולר, אך מי שכבר תרם לי את הסכום הזה יקבל רישיון בחינם, רק שיצור איתי קשר, זה מתנה שלי לאלו שתרמו. ומי שכבר תרם פחות, יכול להשלים את הפרש.
אני מבין שזה יותר יקר מגרסה, אבל אם לא זה, לא הייתי בונה את הפרייקט הזה בכלל, הייתי הולך על משהו אחר, לכן היה צריך להביא לי מוציבציה לבנות את זהובפרט שאני לא הייתי בטוח למכור יותר מרישון אחד
חוץ מזה, הרבה שואלים אותי לוויז, זה לא מומלץ כי אני לא חוסם דפדפן מובנה, ב"ה ללא התחייבות, אני אתן להשבית הרכיב של הדפדפן מובנה, אבל עדיין לדעתי יותר טוב קיידראויד בשביל שימוש כזה, זה ממש נועד יותר לרחפנים או לאלו שמאוד לא רוצים שידמה לסמארטפון. -
המחיר הוא של 75 דולר, אך מי שכבר תרם לי את הסכום הזה יקבל רישיון בחינם, רק שיצור איתי קשר, זה מתנה שלי לאלו שתרמו. ומי שכבר תרם פחות, יכול להשלים את הפרש.
אני מבין שזה יותר יקר מגרסה, אבל אם לא זה, לא הייתי בונה את הפרייקט הזה בכלל, הייתי הולך על משהו אחר, לכן היה צריך להביא לי מוציבציה לבנות את זהובפרט שאני לא הייתי בטוח למכור יותר מרישון אחד
חוץ מזה, הרבה שואלים אותי לוויז, זה לא מומלץ כי אני לא חוסם דפדפן מובנה, ב"ה ללא התחייבות, אני אתן להשבית הרכיב של הדפדפן מובנה, אבל עדיין לדעתי יותר טוב קיידראויד בשביל שימוש כזה, זה ממש נועד יותר לרחפנים או לאלו שמאוד לא רוצים שידמה לסמארטפון.@לא-מתייאש שאלה
אפשר להתקין את האפליקציה הזאת ביחד עם קיידרואיד או שהם לא יעבדו בחפיפה? -
@לא-מתייאש שאלה
אפשר להתקין את האפליקציה הזאת ביחד עם קיידרואיד או שהם לא יעבדו בחפיפה?@הלי כתב בשיתוף | להגביל מכשיר אנדרואיד לכמה אפליקציות בלבד - האפליקצייה החדשה שלי:
@לא-מתייאש שאלה
אפשר להתקין את האפליקציה הזאת ביחד עם קיידרואיד או שהם לא יעבדו בחפיפה?לא אי אפשר
-
שלום לכולם,
קודם כל, לא, אני מטצער, זה לא גרסה 1.0 של קיידרואיד, והאמת שזה כמעט ולא קשור לקיידרואיד (חוץ מהשם אבל לא מצאתי לו משהו אחר מקיידרואיד קיוסק) , אוקיי אתחיל עם הקונטקסט של הדברים, ולמי שזה לא מעניין אותו, ישידלג ישיר לקטע הבה. אבל בעצם, אני ב"ה כמעט סיימתי את המודול של הויפיאן של קיידרואיד 1.0 וכל מה שקשור לסינון של התוכן (שזה לדעתי החלק ההכי קשה) ועכשיו (לפני כ-3 שבועות בערך), הייתי צריך להתחיל את האפליקצייה, כולל כל הממשק, הסינכרון עם השרת וכו וכו, שזה בעצם אפליקצייה סנטדרטית לחלוטין, אך היה לי שאלה שהרבה זמן אני חושב עליה, איזה ארכיטקטורה של אפליקציה אני אבחר... והגעתי למסקנה שבשביל קיידרואיד, ההכי טוב יהיה שילוב של כמה ביחד (למי שזה מעניין, שילוב של Feature-based + Clean + MVVM וכמובן DI עם Koin, אבל לא באתי לדבר על פן הטכני), אבל הייתה לי בעייה שאף פעם לא בניתי אפליקצייה עם 3 ביחד, ולהתחיל עם קיידראויד בלי להתנסות על משהו, לא רציתי, לכן חיפשתי פרוייקט קטן כדי לנסות את השילוב הזה והאם באמת הוא יתאים.
ואז אני רואה את הפוסט הזה, אמרתי לעצמי שזה יכול להיות מעולה, כי אני אוכל לבדוק את הארכיטקטורה וגם אוכל לבדוק אחד מההגנות של קיידרואיד נגד מי שיעשה רוט עם קיידרואיד מותקן, שזה בעצם מצב שיחסום לגמרי את הגישה לממשק של המכשיר ואפילו הכפתורים למטה עם הודעה נחמדה שהמכשיר חסום כל עוד שיש למכשיר רוט. (באמת הכזבו אותי כל אלו שלא עשו התקנה כראוי ולכלכו אח"כ בפומבי על קידירואיד ), זה לקח שבוע אוליי עד שהתחלתי בפועל, עד שסגרנו עם בעל הפוסט וכו, והוא קיבל גרסה ראשונית שעובדת אבל היום אני מפרסם אותה עם קצת תיקונים.אוקיי, אז מה זה, אני פשוט עשיתי ממשק כדי לבחור איזה אפליקציות להשאיר , וגם הוספתי כמה דברים נחמדים כמו לאשר לאיזה אפליקציות יהיה חיבור לרשת וממשק די נחמד אף שהוא לא כ"כ מושקע, כמובן שזה לא חוסם דפדפן מובנה, זה חסימה שעובדת לפי אפליקציות בלבד, עם חומת אש שניתן לבחור לאיזה אפליקציות יהיה חיבור לרשת, יש גם הגנה נגד איפוס על המכשיר, לכן שמו לב לזה. הנה כמה צילומי מסך :
וגם על טאבלט :
ניתן לנסות את האפליקצייה אך חשוב לדעת שכל עוד שלא הפעלתי את המכשיר, ניתן להוריד את החסימה ללא סיסמה, ולמי שרוצה שאני אפעיל אותו, שינסה ויפנה אליי באופן אישי.
אז הנה הקובץ : com.kdroid.kiosk(0.8.1)-release.zip
כמובן צריך מחשב עם ADB, למחוק את כל החשבונות על המכשיר ולהפעיל אותה עם הפקודה הבא :
adb shell dpm set-device-owner com.kdroid.kiosk/.framework.managers.dpm.DpmReceiver
אוקיי זהו להיום !
בברכה
זה הרבה קוד בשביל אפליקצייה כ"כ קטנה, ממש ארכיטקטורה לא מתאימה לפרוייקט קטן כזה├── core
│ ├── data
│ │ ├── local
│ │ │ └── PreferencesRepository.kt
│ │ ├── preview
│ │ │ └── FakeData.kt
│ │ └── remote
│ │ └── checkIfDeviceIsAuthorized.kt
│ ├── domain
│ │ ├── allowedapplications
│ │ │ └── AllowedApplicationsRepository.kt
│ │ ├── managers
│ │ │ └── license
│ │ │ ├── LicenseManagerImpl.kt
│ │ │ └── LicenseManager.kt
│ │ └── utils
│ │ └── Hash.kt
│ └── presentation
│ ├── components
│ │ ├── AppIcon.kt
│ │ ├── BrightnessControl.kt
│ │ ├── CenteredTitle.kt
│ │ ├── Clock.kt
│ │ ├── CodeBlock.kt
│ │ ├── ConfigScaffold.kt
│ │ ├── GeneralAppBar.kt
│ │ ├── HebrewDate.kt
│ │ ├── InstallationStepper.kt
│ │ ├── InstallerConfirmButton.kt
│ │ ├── PasswordDialog.kt
│ │ ├── PasswordField.kt
│ │ ├── ResponsiveScreen.kt
│ │ └── WarningInfo.kt
│ ├── events
│ │ ├── SnackbarEventHandler.kt
│ │ └── SnackbarEvent.kt
│ ├── navigation
│ │ ├── AppNavHost.kt
│ │ ├── NavGraph.kt
│ │ ├── NavState.kt
│ │ ├── NavTransition.kt
│ │ └── NavViewModel.kt
│ └── theme
│ ├── Color.kt
│ ├── Theme.kt
│ └── Type.kt
├── features
│ ├── config
│ │ ├── allowedappsconfig
│ │ │ ├── AllowedAppsConfigEvent.kt
│ │ │ ├── AllowedAppsConfigScreen.kt
│ │ │ ├── AllowedAppsConfigState.kt
│ │ │ └── AllowedAppsConfigViewModel.kt
│ │ ├── ConfigurationItems.kt
│ │ ├── dpmconfig
│ │ │ ├── components
│ │ │ │ └── DisclaimerDialog.kt
│ │ │ ├── DpmConfigEvents.kt
│ │ │ ├── DpmConfigScreen.kt
│ │ │ ├── DpmConfigState.kt
│ │ │ └── DpmConfigViewModel.kt
│ │ ├── networkconfig
│ │ │ ├── NetworkConfigEvent.kt
│ │ │ ├── NetworkConfigRepository.kt
│ │ │ ├── NetworkConfigScreen.kt
│ │ │ ├── NetworkConfigState.kt
│ │ │ └── NetworkConfigViewmodel.kt
│ │ ├── passwordconfig
│ │ │ ├── PasswordConfigEvents.kt
│ │ │ ├── PasswordConfigScreen.kt
│ │ │ ├── PasswordConfigState.kt
│ │ │ └── PasswordConfigViewModel.kt
│ │ └── restrictionsconfig
│ │ ├── RestrictionsConfigEvents.kt
│ │ ├── RestrictionsConfigRepository.kt
│ │ ├── RestrictionsConfigScreen.kt
│ │ ├── RestrictionsConfigState.kt
│ │ ├── RestrictionsConfigViewModel.kt
│ │ └── RestrictionsItems.kt
│ ├── home
│ │ ├── components
│ │ │ ├── batteryindicator
│ │ │ │ ├── BatteryLevel.kt
│ │ │ │ ├── BatteryLevelState.kt
│ │ │ │ └── BatteryLevelViewModel.kt
│ │ │ └── NavigationItems.kt
│ │ ├── HomeEvents.kt
│ │ ├── HomeScreen.kt
│ │ ├── HomeScreenState.kt
│ │ └── HomeScreenViewModel.kt
│ ├── loading
│ │ └── Loading.kt
│ └── settings
│ ├── SettingsScreenEvent.kt
│ ├── SettingsScreen.kt
│ ├── SettingsScreenViewModel.kt
│ └── SettingsState.kt
├── framework
│ ├── di
│ │ └── AppModule.kt
│ ├── managers
│ │ ├── applications
│ │ │ ├── manager
│ │ │ │ ├── ApplicationManagerImpl.kt
│ │ │ │ ├── ApplicationManager.kt
│ │ │ │ └── ApplicationModel.kt
│ │ │ └── receiver
│ │ │ └── ApplicationInstallationReceiver.kt
│ │ ├── batterylevel
│ │ │ ├── BatteryLevelManagerImpl.kt
│ │ │ └── BatteryLevelManager.kt
│ │ ├── dpm
│ │ │ ├── DeviceOwnerConstants.kt
│ │ │ ├── DpmManagerImpl.kt
│ │ │ ├── DpmManager.kt
│ │ │ ├── DpmReceiver.kt
│ │ │ └── FrpManager.kt
│ │ └── systemsettings
│ │ └── SystemSettingsManager.kt
│ ├── receiver
│ │ └── BootReceiver.kt
│ └── services
│ ├── BackgroundServices.kt
│ ├── FakeVpnService.kt
│ ├── ServicesStarterOnBoot.kt
│ └── utils
│ └── ServicesUtils.kt
├── MainActivity.kt
└── MainApplication.kt41 directories, 89 files
@לא-מתייאש התקנתי את הגרסא של הקיידרואיד שכבר הבאת על הנגן שלי.
האם אני יכול להתקין עכשיו את הגרסא שהבאת - כלומר להחליף גרסאות?
ועוד דבר, לא כל כך הבנתי אותך. מה ההבדל בין הגרסא הזאת שאתה מביא כאן לגרסא הקודמת?
[אני זוכר שדיברת פעם על חנות עם אפליקציות שייבדקו אחד אחד, מה עם זה?]