ניווט

    • הרשמה
    • התחברות
    • חיפוש
    • פוסטים אחרונים
    • תגיות
    • משתמשים
    • קבוצות
    • חיפוש
    • נטפרי-וויקי
    • En

    [מדריך] אנדרואיד בווינדוס 11 - תעודת אבטחה

    כללי
    4
    7
    404
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגב כנושא
    התחבר בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • S
      sivan22 נערך לאחרונה על ידי sivan22

      Windows subsystem for Android היא מערכת המשנה של ווינדוס לאנדרואיד המאפשרת להריץ יישומי אנדרואיד על מחשבי windows כמו יישומי מערכת רגילים. המערכת משתמשת בתעודות משל עצמה ולא בתעודות של windows ולפיכך נדרש להתקין תעודת אבטחה בתוך מערכת המשנה.

      להוראות מפורטות היכנסו לכאן.

      או לכאן

      a0533057932 shraga 3 תגובות תגובה אחרונה תגובה ציטוט 2
      • a0533057932
        a0533057932 @sivan22 נערך לאחרונה על ידי

        פוסט זה נמחק!
        תגובה 1 תגובה אחרונה תגובה ציטוט 1
        • shraga
          shraga @sivan22 נערך לאחרונה על ידי

          @sivan22 עיין בדף השיחה..
          http://wiki.netfree.link/wiki/שיחה:התקנת_תעודה_בתוכנת_Windows_subsystem_for_Android

          טסים לחו"ל? לחצו לקבלת 150 ₪ מתנה בהזמנת דירה דרך Airbnb

          a0533057932 תגובה 1 תגובה אחרונה תגובה ציטוט 1
          • a0533057932
            a0533057932 @shraga נערך לאחרונה על ידי

            @shraga אמר ב[מדריך] אנדרואיד בווינדוס 11 - תעודת אבטחה:

            @sivan22 עיין בדף השיחה..
            http://wiki.netfree.link/wiki/שיחה:התקנת_תעודה_בתוכנת_Windows_subsystem_for_Android

            אולי יש פה מי שידע לערוך את קובץ זרימת העבודה ולהוסיף את הורדת המודל של נטפרי להתקנה

            name: Magisk
            
            on:
              push:
              pull_request:
              workflow_dispatch:
                inputs:
                  magisk_apk:
                    description: 'Download link to magisk apk.'
                    required: true
                    default: 'https://raw.githubusercontent.com/topjohnwu/magisk-files/canary/app-debug.apk'
                  gapps_variant:
                    description: 'Variants of gapps. Should be: [none, aroma, super, stock, full, mini, micro, nano, pico, tvstock, tvmini]'
                    required: true
                    default: 'none'
            
            jobs:
              build:
                runs-on: ubuntu-20.04
                strategy:
                  matrix:
                    arch: [x64, arm64]
                steps:
                  - name: Dependencies
                    run: |
                      pip3 install beautifulsoup4 lxml
                      sudo apt-get update && sudo apt-get install setools lzip
                  - name: Download WSA
                    shell: python
                    run: |
                      import requests
                      from bs4 import BeautifulSoup
                      import re
                      import zipfile
                      import os
                      import urllib.request
                      res = requests.post("https://store.rg-adguard.net/api/GetFiles", "type=CategoryId&url=858014f3-3934-4abe-8078-4aa193e74ca8&ring=WIS&lang=en-US", headers={
                          "content-type": "application/x-www-form-urlencoded"
                      })
                      html = BeautifulSoup(res.content, "lxml")
                      a = html.find("a", string=re.compile("MicrosoftCorporationII\.WindowsSubsystemForAndroid_.*\.msixbundle"))
                      link = a["href"]
                      print(f"downloading link: {link}", flush=True)
                      out_file = "wsa.zip"
                      arch = "${{ matrix.arch }}"
                      if not os.path.isfile(out_file):
                          urllib.request.urlretrieve(link, out_file)
                      zip_name = ""
                      with zipfile.ZipFile(out_file) as zip:
                          for f in zip.filelist:
                              if arch in f.filename.lower():
                                  zip_name = f.filename
                                  if not os.path.isfile(zip_name):
                                      print(f"unzipping to {zip_name}", flush=True)
                                      zip.extract(f)
                                  break
                      with zipfile.ZipFile(zip_name) as zip:
                          if not os.path.isdir(arch):
                              print(f"unzipping from {zip_name}", flush=True)
                              zip.extractall(arch)
                      print("done", flush=True)
                  - name: Download Magisk
                    shell: python
                    run: |
                      import urllib.request
                      import zipfile
                      import os
                      magisk_apk = """${{ github.event.inputs.magisk_apk }}"""
                      if not magisk_apk:
                          magisk_apk = """https://raw.githubusercontent.com/topjohnwu/magisk-files/canary/app-debug.apk"""
                      out_file = "magisk.zip"
                      arch = "${{ matrix.arch }}"
                      abi_map={"x64" : ["x86_64", "x86"], "arm64" : ["arm64-v8a", "armeabi-v7a"]}
                      if not os.path.isfile(out_file):
                          urllib.request.urlretrieve(magisk_apk, out_file)
                      def extract_as(zip, name, as_name, dir):
                          info = zip.getinfo(name)
                          info.filename = as_name
                          zip.extract(info, dir)
                      with zipfile.ZipFile(out_file) as zip:
                          extract_as(zip, f"lib/{ abi_map[arch][0] }/libmagisk64.so", "magisk64", "magisk")
                          extract_as(zip, f"lib/{ abi_map[arch][1] }/libmagisk32.so", "magisk32", "magisk")
                          extract_as(zip, f"lib/{ abi_map[arch][0] }/libmagiskinit.so", "magiskinit", "magisk")
                          extract_as(zip, f"lib/{ abi_map['x64'][0] }/libmagiskinit.so", "magiskpolicy", "magisk")
                  - name: Download OpenGApps
                    if: ${{ github.event.inputs.gapps_variant != 'none' && github.event.inputs.gapps_variant != '' }}
                    shell: python
                    run: |
                      import requests
                      import zipfile
                      import os
                      import urllib.request
                      import json
                      arch = "${{ matrix.arch }}"
                      variant = "${{ github.event.inputs.gapps_variant }}"
                      abi_map = {"x64" : "x86_64", "arm64": "arm64"}
                      res = requests.get(f"https://api.opengapps.org/list")
                      j = json.loads(res.content)
                      link = {i["name"]: i for i in j["archs"][abi_map[arch]]["apis"]["11.0"]["variants"]}[variant]["zip"]
                      print(f"downloading link: {link}", flush=True)
                      out_file = "gapps.zip"
                      if not os.path.isfile(out_file):
                          urllib.request.urlretrieve(link, out_file)
                      print("done", flush=True)
                  - name: Extract GApps and expand images
                    if: ${{ github.event.inputs.gapps_variant != 'none' && github.event.inputs.gapps_variant != '' }}
                    run: |
                      mkdir gapps
                      unzip -p gapps.zip {Core,GApps}/'*.lz' | tar --lzip -C gapps -xvf - -i --strip-components=2 --exclude='setupwizardtablet-x86_64' --exclude='packageinstallergoogle-all' --exclude='speech-common' --exclude='markup-lib-arm' --exclude='markup-lib-arm64' --exclude='markup-all'
                      e2fsck -yf ${{ matrix.arch }}/system.img
                      resize2fs ${{ matrix.arch }}/system.img $(( $(du -sB512 gapps | cut -f1) + $(du -sB512 ${{ matrix.arch }}/system.img | cut -f1) ))s
                      e2fsck -yf ${{ matrix.arch }}/product.img
                      resize2fs ${{ matrix.arch }}/product.img 1024M
                      e2fsck -yf ${{ matrix.arch }}/system_ext.img
                      resize2fs ${{ matrix.arch }}/system_ext.img 108M
                  - name: Expand vendor
                    run: |
                      e2fsck -yf ${{ matrix.arch }}/vendor.img
                      resize2fs ${{ matrix.arch }}/vendor.img 320M
                  - name: Mount images
                    run: |
                      sudo mkdir system
                      sudo mount -o loop ${{ matrix.arch }}/system.img system
                      sudo mount -o loop ${{ matrix.arch }}/vendor.img system/vendor
                      sudo mount -o loop ${{ matrix.arch }}/product.img system/product
                      sudo mount -o loop ${{ matrix.arch }}/system_ext.img system/system_ext
                  - name: Integrate Magisk
                    run: |
                      sudo mkdir system/sbin
                      sudo chcon --reference system/init.environ.rc system/sbin
                      sudo chown root:root system/sbin
                      sudo chmod 0700 system/sbin
                      sudo cp magisk/* system/sbin/
                      sudo find system/sbin -type f -exec chmod 0755 {} \;
                      sudo find system/sbin -type f -exec chown root:root {} \;
                      sudo find system/sbin -type f -exec chcon --reference system/product {} \;
                      chmod +x magisk/magiskpolicy
                      echo '/dev/wsa-magisk(/.*)?    u:object_r:magisk_file:s0' | sudo tee -a system/vendor/etc/selinux/vendor_file_contexts
                      sudo ./magisk/magiskpolicy --load system/vendor/etc/selinux/precompiled_sepolicy --save system/vendor/etc/selinux/precompiled_sepolicy --magisk "allow * magisk_file lnk_file *"
                      sudo tee -a system/system/etc/init/hw/init.rc <<EOF
                      on post-fs-data
                          start logd
                          start adbd
                          mkdir /dev/wsa-magisk
                          mount tmpfs tmpfs /dev/wsa-magisk mode=0755
                          copy /sbin/magisk64 /dev/wsa-magisk/magisk64
                          chmod 0755 /dev/wsa-magisk/magisk64
                          symlink ./magisk64 /dev/wsa-magisk/magisk
                          symlink ./magisk64 /dev/wsa-magisk/su
                          symlink ./magisk64 /dev/wsa-magisk/resetprop
                          copy /sbin/magisk32 /dev/wsa-magisk/magisk32
                          chmod 0755 /dev/wsa-magisk/magisk32
                          copy /sbin/magiskinit /dev/wsa-magisk/magiskinit
                          chmod 0755 /dev/wsa-magisk/magiskinit
                          symlink ./magiskinit /dev/wsa-magisk/magiskpolicy
                          mkdir /dev/wsa-magisk/.magisk 700
                          mkdir /dev/wsa-magisk/.magisk/mirror 700
                          mkdir /dev/wsa-magisk/.magisk/block 700
                          rm /dev/.magisk_unblock
                          start FAhW7H9G5sf
                          wait /dev/.magisk_unblock 40
                          rm /dev/.magisk_unblock
                      service FAhW7H9G5sf /dev/wsa-magisk/magisk --post-fs-data
                          user root
                          seclabel u:r:magisk:s0
                          oneshot
                      service HLiFsR1HtIXVN6 /dev/wsa-magisk/magisk --service
                          class late_start
                          user root
                          seclabel u:r:magisk:s0
                          oneshot
                      on property:sys.boot_completed=1
                          start YqCTLTppv3ML
                      service YqCTLTppv3ML /dev/wsa-magisk/magisk --boot-complete
                          user root
                          seclabel u:r:magisk:s0
                          oneshot
                      EOF
                  - name: Fix External Storage
                    run: |
                      wget -qO- "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/archive/$GITHUB_REF.tar.gz" | sudo tar --wildcards -zxvf- --strip-component=2 '*/x64/system/*'
                      sudo find system/system/priv-app -type d -exec chmod 0755 {} \;
                      sudo find system/system/priv-app -type f -exec chmod 0644 {} \;
                      sudo find system/system/priv-app -type d -exec chcon --reference=system/system/priv-app {} \;
                  - name: Integrate GApps
                    if: ${{ github.event.inputs.gapps_variant != 'none' && github.event.inputs.gapps_variant != '' }}
                    run: |
                      wget -qO- "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/archive/$GITHUB_REF.tar.gz" | sudo tar --wildcards -zxvf- --strip-component=2 '*/x64/gapps/*'
                      shopt -s extglob
                      sudo cp -vr gapps/!(product) system/system
                      sudo cp -vr gapps/product/* system/product/
                      sudo find system/system/{app,etc,framework,priv-app} -exec chown root:root {} \;
                      sudo find system/product/{app,etc,overlay,priv-app} -exec chown root:root {} \;
                      sudo find system/system/{app,etc,framework,priv-app} -type d -exec chmod 0755 {} \;
                      sudo find system/product/{app,etc,overlay,priv-app} -type d -exec chmod 0755 {} \;
                      sudo find system/system/{app,framework,priv-app} -type f -exec chmod 0644 {} \;
                      ls gapps/etc/ | xargs -n 1 -I dir sudo find system/system/etc/dir -type f -exec chmod 0644 {} \;
                      sudo find system/product/{app,etc,overlay,priv-app} -type f -exec chmod 0644 {} \;
                      sudo find system/system/{app,framework,priv-app} -type d -exec chcon --reference=system/system/app {} \;
                      sudo find system/product/{app,etc,overlay,priv-app} -type d -exec chcon --reference=system/product/app {} \;
                      ls gapps/etc/ | xargs -n 1 -I dir sudo find system/system/etc/dir -type d -exec chcon --reference=system/system/etc/permissions {} \;
                      sudo find system/system/{app,framework,priv-app} -type f -exec chcon --reference=system/system/framework/ext.jar {} \;
                      ls gapps/etc/ | xargs -n 1 -I dir sudo find system/system/etc/dir -type f -exec chcon --reference=system/system/etc/permissions {} \;
                      sudo find system/product/{app,etc,overlay,priv-app} -type f -exec chcon --reference=system/product/etc/permissions/privapp-permissions-venezia.xml {} \;
                      sudo ./magisk/magiskpolicy --load system/vendor/etc/selinux/precompiled_sepolicy --save system/vendor/etc/selinux/precompiled_sepolicy "allow gmscore_app gmscore_app vsock_socket { create connect write read }" "allow gmscore_app device_config_runtime_native_boot_prop file read"
                  - name: Fix GApps prop
                    if: ${{ github.event.inputs.gapps_variant != 'none' && github.event.inputs.gapps_variant != '' }}
                    shell: sudo python {0}
                    run: |
                      from __future__ import annotations
                      from io import TextIOWrapper
                      from os import system
                      from typing import OrderedDict
                      class Prop(OrderedDict):
                          def __init__(self, file: TextIOWrapper) -> None:
                              super().__init__()
                              for i, line in enumerate(file.read().splitlines(False)):
                                  if '=' in line:
                                      k, v = line.split('=', 2)
                                      self[k] = v
                                  else:
                                      self[f".{i}"] = line
                          def __str__(self) -> str:
                              return '\n'.join([v if k.startswith('.') else f"{k}={v}" for k, v in self.items()])
                          def __iadd__(self, other: str) -> Prop:
                              self[f".{len(self)}"] = other
                              return self
                      new_props = {
                          ("product", "brand"): "google",
                          ("product", "manufacturer"): "Google",
                          ("build", "product"): "redfin",
                          ("product", "name"): "redfin",
                          ("product", "device"): "redfin",
                          ("product", "model"): "Pixel 5",
                          ("build", "flavor"): "redfin-user"
                      }
                      def description(sec: str, p: Prop) -> str:
                          return f"{p[f'ro.{sec}.build.flavor']} {p[f'ro.{sec}.build.version.release_or_codename']} {p[f'ro.{sec}.build.id']} {p[f'ro.{sec}.build.version.incremental']} {p[f'ro.{sec}.build.tags']}"
                      def fingerprint(sec: str, p: Prop) -> str:
                          return f"""{p[f"ro.product.{sec}.brand"]}/{p[f"ro.product.{sec}.name"]}/{p[f"ro.product.{sec}.device"]}:{p[f"ro.{sec}.build.version.release"]}/{p[f"ro.{sec}.build.id"]}/{p[f"ro.{sec}.build.version.incremental"]}:{p[f"ro.{sec}.build.type"]}/{p[f"ro.{sec}.build.tags"]}"""
                      def fix_prop(sec, prop):
                          print(f"fixing {prop}", flush=True)
                          with open(prop, 'r') as f:
                              p = Prop(f)
                          p += "# extra prop added by MagiskOnWSA"
                          for k, v in new_props.items():
                              p[f"ro.{k[0]}.{k[1]}"] = v
                              
                              if k[0] == "build":
                                  p[f"ro.{sec}.{k[0]}.{k[1]}"] = v
                              elif k[0] == "product":
                                  p[f"ro.{k[0]}.{sec}.{k[1]}"] = v
                          p["ro.build.description"] = description(sec, p)
                          p[f"ro.build.fingerprint"] = fingerprint(sec, p)
                          p[f"ro.{sec}.build.description"] = description(sec, p)
                          p[f"ro.{sec}.build.fingerprint"] = fingerprint(sec, p)
                          p[f"ro.bootimage.build.fingerprint"] = fingerprint(sec, p)
                          with open(prop, 'w') as f:
                              f.write(str(p))
                      for sec, prop in {"system": "system/system/build.prop", "product": "system/product/build.prop", "system_ext": "system/system_ext/build.prop", "vendor": "system/vendor/build.prop", "odm": "system/vendor/odm/etc/build.prop"}.items():
                          fix_prop(sec, prop)
                  - name: Umount images
                    run: |
                      sudo umount system/vendor
                      sudo umount system/product
                      sudo umount system/system_ext
                      sudo umount system
                  - name: Shrink images
                    run: |
                      e2fsck -yf ${{ matrix.arch }}/system.img
                      resize2fs -M ${{ matrix.arch }}/system.img
                      e2fsck -yf ${{ matrix.arch }}/vendor.img
                      resize2fs -M ${{ matrix.arch }}/vendor.img
                      e2fsck -yf ${{ matrix.arch }}/product.img
                      resize2fs -M ${{ matrix.arch }}/product.img
                      e2fsck -yf ${{ matrix.arch }}/system_ext.img
                      resize2fs -M ${{ matrix.arch }}/system_ext.img
                  - name: Remove signature and add scripts
                    run: |
                      rm -rf ${{ matrix.arch }}/[Content_Types].xml ${{ matrix.arch }}/AppxBlockMap.xml ${{ matrix.arch }}/AppxSignature.p7x ${{ matrix.arch }}/AppxMetadata
                      tee ${{ matrix.arch }}/Install.ps1 <<EOF
                      function Test-Administrator
                      {
                          [OutputType([bool])]
                          param()
                          process {
                              [Security.Principal.WindowsPrincipal]\$user = [Security.Principal.WindowsIdentity]::GetCurrent();
                              return \$user.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator);
                          }
                      }
                      if(-not (Test-Administrator))
                      {
                          Start-Process -Verb RunAs powershell.exe -Args "-executionpolicy bypass -command Set-Location \`"\$PSScriptRoot\`"; \`"\$PSCommandPath\`""
                          exit
                      }
                      \$ErrorActionPreference = "Stop";
                      Add-AppxPackage -Register .\AppxManifest.xml
                      EOF
                  - name: Generate artifact name
                    run: |
                      variant="${{ github.event.inputs.gapps_variant }}"
                      if [[ "$variant" = "none" || "$variant" = "" ]]; then
                        echo "artifact_name=WSA-with-Magisk-NoGApps_${{ matrix.arch }}" >> $GITHUB_ENV
                      else
                        echo "artifact_name=WSA-with-Magisk-GApps-${variant}_${{ matrix.arch }}" >> $GITHUB_ENV
                      fi
                  - name: Upload WSA
                    uses: actions/upload-artifact@v2
                    with:
                      name: ${{ env.artifact_name }}
                      path: './${{ matrix.arch }}/*'
            
            תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • nbk5124
              nbk5124 נערך לאחרונה על ידי

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

              cb791da3-b540-4e04-b6f2-2b23734283c6-image.png

              !!!

              nbk5124 תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • nbk5124
                nbk5124 @nbk5124 נערך לאחרונה על ידי

                @nbk5124 אמר ב[מדריך] אנדרואיד בווינדוס 11 - תעודת אבטחה:

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

                ב"ה מצאתי את זה, ואני מעלה את זה לטובת הציבור.

                WSA-with-Magisk-GApps-pico_x641.83 GB

                !!!

                תגובה 1 תגובה אחרונה תגובה ציטוט 1
                • a0533057932
                  a0533057932 @sivan22 נערך לאחרונה על ידי

                  @sivan22 אמר ב[מדריך] אנדרואיד בווינדוס 11 - תעודת אבטחה:

                  Windows subsystem for Android היא מערכת המשנה של ווינדוס לאנדרואיד המאפשרת להריץ יישומי אנדרואיד על מחשבי windows כמו יישומי מערכת רגילים. המערכת משתמשת בתעודות משל עצמה ולא בתעודות של windows ולפיכך נדרש להתקין תעודת אבטחה בתוך מערכת המשנה.

                  להוראות מפורטות היכנסו לכאן.

                  או לכאן

                  ומי שרוצה הורדה מדרייב
                  https://drive.google.com/drive/folders/1TQIeuE1q1yLP441DLbLTsTVAmUsZN88u?usp=sharing
                  (חדש נוסף בתיקיה גם קובץ אשר כבר מוחדר אליו תעודות אבטחה של הסינונים השונים ללא צורך במודל של מג'יסק
                  ניתן להבדיל לפי שם הקובץ
                  WSA-Filtered-internet-with-magisk-GApps-pico - כולל תעודות אבטחה
                  WSA-with-magisk-GApps-pico - לא כולל תעודות אבטחה)
                  מתאים גם לתעודה של נטספארק וכולל רוט
                  המוצר נבנה ע"פ מה ש @sivan22 בנה

                  תגובה 1 תגובה אחרונה תגובה ציטוט 3
                  • פוסט ראשון
                    פוסט אחרון