2020/10/04(日)Huawei nova lite に Android 10(LineageOS 17.1)を入れる

前提条件

  • Oreo以降にアップデート済
  • ブートローダーアンロック済

カスタムカーネルを導入している場合は、作業前に必ずストックROMカーネルに戻しましょう。*1

*1 : いろんなROMを試しても起動せず、数時間ハマったらしい……

導入手順

概ねLineageOS 17.1の記事に書いてあるとおりです。

  1. OS本体とパッチをダウンロードします
  2. Honer P9 lite用のTWRPを焼く(相変わらずP8 Lite用はイマイチ
    fastboot flash recovery_ramdisk twrp-3.4.0-0-prague.img
    
  3. zipを解凍して出てくるOS本体を焼きます。
    fastboot flash system system.img
    
  4. リカバリを起動します。
  5. Wipe → Advance → System → Change File System → Resize File System
  6. cache等を wipe(消去)します(Wipeデフォルト)。
  7. 必要に応じてWipeから Format Data します。消去するとアプリ等の情報はすべて消えます。*2
  8. https://opengapps.org/ から ARM64 10.0 の nano か pico を落とし、TWRPからUSB(MTP)で接続するなどしてSD等に転送します。
  9. 転送した gapps を焼きます。
  10. los_patches_prague.zipを焼きます。
  11. 再起動します。

*2 : 消去したほうが確実ですが、しなくてもきちんと動作することもあります。

その他

関連記事

2020/10/01(木)Sambaでファイルコピーに失敗し 0x80070032 エラーになる

Windows10からファイルをコピーしていると「予期しないエラーのため、ファイルをコピーできません」「エラー 0x80070032: この要求はサポートされていません」と表示される問題。

エラーの状況

  • コピー元: Windows 10
  • コピー先
    • Samba Version 4.9.5 on Linux
    • Filesystem NILFS2

この状況で大量のファイルをコピーしていると、一部のファイルやフォルダでエラーが発生します。

samba_0x80070032.png

ログの調査

  • Windows 7では起きていなかった。
  • Samba側のファイルシステムがext4だと起きない。

「log level=10」に設定して、ログを確認しみました。

set_ea_dos_attribute: Cannot set attribute EA on file AU.txt: Error = サポートされていない操作です
open_file_ntcreate: FILE_OPEN requested for file AU.txt and file doesn't exist.

ファイルの作成に失敗しているような感じです。

原因

Sambaは「store dos attributes = yes」のときに、DOS attributeと呼ばれるファイル属性を維持したままファイルを保存しようとします。

DOS attributeとは、Windows登場前の大昔に存在したファイル属性で、古くは「R,S,H,A」の4種類がありました。Windows時代になって不要となったものだと思っていたのですが、知らない間に拡張され続けていたようです……。

Windows では attrib コマンドによってファイル属性(DOS attribute)を確認または変更できます。*1

samba_attrib.png

このうち、比較的最近拡張された「X, P, U」属性があると、NILFSはこれらの属性値に対応していないためコピーに失敗します。

*1 : エクスプローラーのファイルのプロパティからでも確認できますが、その場合、なぜかX属性は表示されません。

解決策

smb.confに以下を設定します。

	store dos attributes = no

この設定のデフォルトは元々 no だったのですが、Samba 4.9(2018年9月)以降で yes に変更されています。

ext4等のファイルシステムは対応済のようですが、NILFSのようなメジャーではないファイルシステムを使用しているとこの問題に当たるかと思いますので、記録として残しておきます。

雑感

SambaはNTFSのファイルアクセス権限(NT ACL)等、ファイル属性をなるべく維持するように作られていて、ファイルシステム側もそれに対応できるよう拡張されてきた歴史があります。user_xattrでググると色々出てきます。

Linuxのシステム構造の中に、NTのアクセス権限やDOSのファイル属性が残るというのも不思議な感じですが、それが災いしてしまった事件でした。

どれだけ検索しても(海外含め)同じ不具合踏んでる人がいないので苦労しました……。